Python 解析xml文件的示例
1、获取xml树
importxml.etree.ElementTreeasET defgetTree(xmlName): xmlName=xmlName.strip() try: tree=ET.parse(xmlName) except: tree=None print'Analysisxmlfilefail,filename:{}'.format(xmlName) returntree
2、获取根节点
defgetRoot(tree): iftreeisnotNone: root=tree.getroot() else: root=None print'Getrootfail' returnroot
3、查看根节点
defseeRoot(root): '''我是小明''' ifrootisnotNone: print'roottag:',root.tag#标签(country) print'rootattrib:',root.attrib#屬性(name="tan") print'roottext:',root.text#文本(我是小明) print'roottail:',root.tail#尾字符串(未涉及)
4、从根开始遍历树
deftraverseRoot(root): ifrootisnotNone: forlabel1inroot: print'label1tag:',label1.tag print'label1attrib:',label1.attrib print'label1text:',label1.text print'label1tail:',label1.tail print'==================' forlabel2inlabel1: print'label2tag:',label2.tag print'label2attrib:',label2.attrib print'label2text:',label2.text print'label2tail:',label2.tail print'==================' forlabel3inlabel2: print'label3tag:',label3.tag print'label3attrib:',label3.attrib print'label3text:',label3.text print'label3tail:',label3.tail print'=================='
5、找到2012年的gdppc和neighbor下的b标签(找到同层有条件的同层另一个tag的文本)
deffindYouNedd(root): '''查找year为2012下的b标签的文本''' ifrootisnotNone: forlabel1inroot: forlabel2inlabel1: iflabel1.tag=='country'andlabel2.text=='2012':#找到本层标签为country且下一层有2012文本 print'Findtag为countryandnextyear=2012' forchildinlabel1: ifchild.tag=='gdppc': printchild.text foryouNeedinchild: ifyouNeed.tag=='b': print'Youneed:',youNeed.text
6、查找父节点下的子节点
deffindChildNode(fatherNode,childNode): childNode=childNode.strip() iffatherNodeisnotNone: childs=fatherNode.findall(childNode) printchilds printlen(childs)
7、另一种办法实现第4点
deffindYouNedd2(root): countryNodes=root.findall('country') ifrootisnotNone: forcountryNodeincountryNodes: ifcountryNode.find('year').text=='2012': printcountryNode.find('gdppc').text
8、移除节点
defdelNode(tree,nodeName): nodeName=nodeName.strip() iftreeisnotNone: root=tree.getroot() findNode=root.find(nodeName) iffindNodeisnotNoneandfindNode.tag==nodeName: root.remove(findNode) tree.write('removeNode.xml')#移除节点后新的xml
9、xml样例(xmlDemo.xml)
1 2008 141100 4 2011 59900 123 aaa 68 2012 13600 456 bbb 789
以上就是Python解析xml文件的示例的详细内容,更多关于Python解析xml的资料请关注毛票票其它相关文章!