xml模块
<?xml version="1.0"?><data> <country name="Liechtenstein"> <rank updated="yes">2</rank> <year>2008</year> <gdppc>141100</gdppc> <neighbor name="Austria" direction="E"/> <neighbor name="Switzerland" direction="W"/> </country> <country name="Singapore"> <rank updated="yes">5</rank> <year>2011</year> <gdppc>59900</gdppc> <neighbor name="Malaysia" direction="N"/> </country> <country name="Panama"> <rank updated="yes">69</rank> <year>2011</year> <gdppc>13600</gdppc> <neighbor name="Costa Rica" direction="W"/> <neighbor name="Colombia" direction="E"/> </country></data>
2.操作xml文档2.1查询
#!/usr/bin/env python# -*- coding:utf-8 -*-# Author: vitaimport xml.etree.ElementTree as ETtree = ET.parse("xmltest.xml")root = tree.getroot()print(root.tag)#遍历xml文档for child in root: print(child.tag, child.attrib) for i in child: print(i.tag,i.text,i.attrib)#只遍历year 节点for node in root.iter('year'): print(node.tag,node.text)E:\PythonProject\python-test\venvP3\Scripts\python.exe E:/PythonProject/python-test/BasicGrammer/test.pydatacountry {'name': 'Liechtenstein'}rank 2 {'updated': 'yes'}year 2008 {}gdppc 141100 {}neighbor None {'name': 'Austria', 'direction': 'E'}neighbor None {'name': 'Switzerland', 'direction': 'W'}country {'name': 'Singapore'}rank 5 {'updated': 'yes'}year 2011 {}gdppc 59900 {}neighbor None {'name': 'Malaysia', 'direction': 'N'}country {'name': 'Panama'}rank 69 {'updated': 'yes'}year 2011 {}gdppc 13600 {}neighbor None {'name': 'Costa Rica', 'direction': 'W'}neighbor None {'name': 'Colombia', 'direction': 'E'}year 2008year 2011year 2011Process finished with exit code 0
2.2修改
#!/usr/bin/env python# -*- coding:utf-8 -*-# Author: vitaimport xml.etree.ElementTree as ETtree = ET.parse("xmltest.xml")root = tree.getroot()#修改for node in root.iter('year'): new_year = int(node.text) + 1 node.text = str(new_year) node.set("updated","yes")tree.write("xmltest.xml")E:\PythonProject\python-test\venvP3\Scripts\python.exe E:/PythonProject/python-test/BasicGrammer/test.pyProcess finished with exit code 0查看文件内容<data> <country name="Liechtenstein"> <rank updated="yes">2</rank> <year updated="yes">2009</year> <gdppc>141100</gdppc> <neighbor direction="E" name="Austria" /> <neighbor direction="W" name="Switzerland" /> </country> <country name="Singapore"> <rank updated="yes">5</rank> <year updated="yes">2012</year> <gdppc>59900</gdppc> <neighbor direction="N" name="Malaysia" /> </country> <country name="Panama"> <rank updated="yes">69</rank> <year updated="yes">2012</year> <gdppc>13600</gdppc> <neighbor direction="W" name="Costa Rica" /> <neighbor direction="E" name="Colombia" /> </country></data>
2.3删除
#!/usr/bin/env python# -*- coding:utf-8 -*-# Author: vitaimport xml.etree.ElementTree as ETtree = ET.parse("xmltest.xml")root = tree.getroot()#删除nodefor country in root.findall('country'): rank = int(country.find('rank').text) if rank > 50: root.remove(country)tree.write('output.xml')查看output.xml<data> <country name="Liechtenstein"> <rank updated="yes">2</rank> <year updated="yes">2009</year> <gdppc>141100</gdppc> <neighbor direction="E" name="Austria" /> <neighbor direction="W" name="Switzerland" /> </country> <country name="Singapore"> <rank updated="yes">5</rank> <year updated="yes">2012</year> <gdppc>59900</gdppc> <neighbor direction="N" name="Malaysia" /> </country> </data>
2.4创建xml文档
#!/usr/bin/env python# -*- coding:utf-8 -*-# Author: vitaimport xml.etree.ElementTree as ETnew_xml = ET.Element("namelist")name = ET.SubElement(new_xml,"name",attrib={"enrolled":"yes"})age = ET.SubElement(name,"age",attrib={"checked":"no"})sex = ET.SubElement(name,"sex")sex.text = '33'name2 = ET.SubElement(new_xml,"name",attrib={"enrolled":"no"})age = ET.SubElement(name2,"age")age.text = '19'et = ET.ElementTree(new_xml) #生成文档对象et.write("test.xml", encoding="utf-8",xml_declaration=True)ET.dump(new_xml) #打印生成的格式E:\PythonProject\python-test\venvP3\Scripts\python.exe E:/PythonProject/python-test/BasicGrammer/test.py<namelist><name enrolled="yes"><age checked="no" /><sex>33</sex></name><name enrolled="no"><age>19</age></name></namelist>Process finished with exit code 0查看文件内容<?xml version='1.0' encoding='utf-8'?><namelist><name enrolled="yes"><age checked="no" /><sex>33</sex></name><name enrolled="no"><age>19</age></name></namelist>
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。