一、xml简介
xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单,不过,古时候,在json还没诞生的黑暗年代,大家只能选择用xml呀,至今很多传统公司如金融行业的很多系统的接口还主要是xml。
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>
二、Python使用xml
xml协议在各个语言里的都 是支持的,在python中可以用以下模块操作xml:
# print(root.iter(\'year\')) #全文搜索 # print(root.find(\'country\')) #在root的子节点找,只找一个 # print(root.findall(\'country\')) #在root的子节点找,找所有 import xml.etree.ElementTree as ET tree = ET.parse(\"xmltest.xml\") root = tree.getroot() print(root.tag) #遍历xml文档 for child in root: print(\'========>\', child.tag, child.attrib, child.attrib[\'name\']) for i in child: print(i.tag, i.attrib, i.text) #只遍历year 节点 for node in root.iter(\'year\'): print(node.tag, node.text) #--------------------------------------- import xml.etree.ElementTree as ET tree = 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\') node.set(\'version\', \'1.0\') tree.write(\'test.xml\') #删除node for country in root.findall(\'country\'): rank = int(country.find(\'rank\').text) if rank > 50: root.remove(country) tree.write(\'output.xml\') #在country内添加(append)节点year2 import xml.etree.ElementTree as ET tree = ET.parse(\"a.xml\") root = tree.getroot() for country in root.findall(\'country\'): for year in country.findall(\'year\'): if int(year.text) > 2000: year2 = ET.Element(\'year2\') year2.text = \'新年\' year2.attrib = {\'update\': \'yes\'} country.append(year2) #往country节点下添加子节点 tree.write(\'a.xml.swap\')
三、自己创建xml文档
import xml.etree.ElementTree as ET new_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) #打印生成的格式
以上就是python xml模块的简单使用的详细内容,更多关于python xml模块使用的资料请关注其它相关文章!
© 版权声明
THE END
暂无评论内容