介绍
这篇文章将为大家详细讲解有关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文件