xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单,不过,古时候,在json还没诞生的黑暗年代,大家只能选择用xml,至今很多传统公司如金融行业的很多系统的接口还主要是xml。
xml的格式如下,就是通过<>节点来区别数据结构的:
2 2008 141100 5 2011 59900 69 2011 13600
xml协议在各个语言里的都 是支持的,在python中可以用以下模块操作xml
import 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)#只遍历year 节点for node in root.iter('year'): print(node.tag,node.text)
修改和删除xml文档内容
import 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")#删除nodefor country in root.findall('country'): rank = int(country.find('rank').text) if rank > 50: root.remove(country)tree.write('output.xml')
自己创建xml文档
import xml.etree.ElementTree as ETnew_xml = ET.Element('namelist') # rootname = ET.SubElement(new_xml, "name", attrib={ "enrolled": "yes"})age = ET.SubElement(name, "age", attrib={ "checked": "no"})sex = ET.SubElement(name, "sex")sex.text = '33'n = ET.SubElement(name, 'name')n.text = 'Alex li'sex.text = 'Male'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) #打印生成的格式