Python如何实现解析xml文件

  介绍

这篇文章将为大家详细讲解有关Python如何实现解析xml文件,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

<强> 1,获取xml树

进口xml.etree。ElementTree在等
  
  
  def getTree (xmlName):
  xmlName=xmlName.strip ()
  试一试:
  树=ET.parse (xmlName)
  除了:
  树=没有
  打印& # 39;分析xml文件失败,文件名称:{}& # 39;.format (xmlName)
  回归树

<强> 2,获取根节点

 def getRoot(树):
  如果没有树没有:
  根=tree.getroot ()
  其他:
  根=没有
  打印& # 39;得到根失败# 39;
  返回根

<强> 3,查看根节点

 def seeRoot(根):
  & # 39;& # 39;& # 39;& lt;国家name=皌an"在我是小明& lt;/country> & # 39; & # 39; & # 39;
  如果根不是没有:
  打印& # 39;根标记:& # 39;根。标签#标签(国家)
  打印& # 39;根鲜明:& # 39;根。attrib #屬性(name=皌an")
  打印& # 39;根文本:& # 39;根。文本#文本(我是小明)
  打印& # 39;根尾巴:& # 39;根。尾巴#尾字符串(未涉及)

<强> 4,从根开始遍历树

 def traverseRoot(根):
  如果根不是没有:
  在根label1:
  打印& # 39;label1标签:& # 39;label1.tag
  打印& # 39;label1鲜明:& # 39;label1.attrib
  打印& # 39;label1文本:& # 39;label1.text
  打印& # 39;label1尾巴:& # 39;label1.tail
  打印& # 39;==================& # 39;
  在label1 label2:
  打印& # 39;label2标签:& # 39;label2.tag
  打印& # 39;label2鲜明:& # 39;label2.attrib
  打印& # 39;label2文本:& # 39;label2.text
  打印& # 39;label2尾巴:& # 39;label2.tail
  打印& # 39;==================& # 39;
  在label2 label3:
  打印& # 39;label3标签:& # 39;label3.tag
  打印& # 39;label3鲜明:& # 39;label3.attrib
  打印& # 39;label3文本:& # 39;label3.text
  打印& # 39;label3尾巴:& # 39;label3.tail
  打印& # 39;==================& # 39;

<强> 5,找到2012年的gdppc和邻居下的b标签(找到同层有条件的同层另一个标签的文本)

 def findYouNedd(根):
  & # 39;& # 39;& # 39;查找2012年为下的b标签的文本& # 39;& # 39;& # 39;
  如果根不是没有:
  在根label1:
  在label1 label2:
  如果label1。标签==& # 39;增长# 39;和label2。文本==& # 39;2012 & # 39;:#找到本层标签为国家且下一层有2012文本
  打印& # 39;找到标签为国家和明年=2012 & # 39;
  儿童在label1:
  如果孩子。标签==& # 39;gdppc& # 39;:
  打印child.text
  你的孩子:
  如果细菌。标签==& # 39;b # 39;:
  打印& # 39;你需要:& # 39;细菌。文本

<强> 6,查找父节点下的子节点

 def findChildNode (fatherNode childNode):
  childNode=childNode.strip ()
  如果fatherNode不是没有:
  蔡尔兹=fatherNode.findall (childNode)
  打印蔡尔兹
  打印len(孩子)

<强> 7,另一种办法实现第4点

 def findYouNedd2(根):
  countryNodes=root.findall(& # 39;增长# 39;)
  如果根不是没有:
  在countryNodes countryNode:
  如果countryNode.find(& # 39;年# 39;)。文本==& # 39;2012 & # 39;
  打印countryNode.find (& # 39; gdppc& # 39;)。文本

<强> 8日移除节点

 def delNode(树,节点名):
  节点名=nodeName.strip ()
  如果没有树没有:
  根=tree.getroot ()
  findNode=root.find(节点名)
  如果findNode不是没有和findNode。标签==节点名:
  root.remove (findNode)
  tree.write (& # 39; removeNode.xml& # 39;) #移除节点后新的xml 

<强> 9,xml样例(xmlDemo。xml)

& lt;及# 63;xml version=?.0“, # 63;比;   & lt; data>   & lt;国家名称=癓iechtenstein"祝辞   & lt; rank> 1 & lt;/rank>   & lt; year> 2008 & lt;/year>   & lt; gdppc> 141100 & lt;/gdppc>   & lt;邻居的名字=癆ustria"方向=癊"/比;   & lt;邻居的名字=癝witzerland"方向=癢"/比;   & lt;/country>   & lt;国家名称=癝ingapore"祝辞   & lt; rank> 4 & lt;/rank>   & lt; year> 2011 & lt;/year>   & lt; gdppc> 59900 & lt;/gdppc>   & lt;邻居的名字=癕alaysia"方向=癗"在123   & lt;一个名称=癮"祝辞aaa & lt;/a>   & lt;/neighbor>   & lt;/country>   & lt;国家名称=癝ingapore"祝辞   & lt; rank> 68 & lt;/rank>   & lt; year> 2012 & lt;/year>   & lt; gdppc> 13600 & lt;/gdppc>   & lt;邻居的名字=翱扑顾ica"方向=癢"/比;   & lt;邻居的名字=癈olombia"方向=癊"在456   & lt; b name=癰"祝辞bbb & lt;/b>   & lt;/neighbor>   & lt;/country>   & lt; city> 789 & lt;/city>   & lt;/data>

Python如何实现解析xml文件