python_88_xml模块
xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单
例如创建xmltest.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"/> <info> <population>13</population> <size>960</size> </info> </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>
xml协议在各个语言里的都是支持的,在python中可以用以下模块操作xml  
import xml.etree.ElementTree as ET
tree=ET.parse('xmltest.xml')
root=tree.getroot()
print(root)
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,node.attrib)
修改和删除xml文档内容
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','oldboy')#添加属性
tree.write('xmltest.xml')
#删除
for 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 ET
new_xml=ET.Element('personinfolist')#根节点
personinfo=ET.SubElement(new_xml,'personinfo',attrib={'enrolled':'yes'})#personinfolist的子节点
name=ET.SubElement(personinfo,'name')
name.text='QI dad'
age=ET.SubElement(personinfo,'age',attrib={'checked':'no'})#personinfo的子节点
sex=ET.SubElement(personinfo,'sex')#personinfo的子节点
age.text='67'
personinfo2 = ET.SubElement(new_xml,"personinfo",attrib={"enrolled":"no"})
name=ET.SubElement(personinfo2,'name')
name.text='old boy'
age = ET.SubElement(personinfo2,"age")
age.text = '19'
et=ET.ElementTree(new_xml)
et.write('test.xml',encoding='utf-8',xml_declaration=True)#xml_declaration=True声明xml version="1.0"
ET.dump(new_xml)#生成打印格式
  
                    
                
                
            
        
浙公网安备 33010602011771号