• 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>
    View Code
    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)#生成打印格式
    
      
    
    
    
    
    
  • 相关阅读:
    poj 2676 Suduku (dfs)
    poj 1562 Oil Deposits (dfs)
    poj 2907 Collecting Beepers (dfs)
    poj 1655 Balancing Act (树形dfs)
    poj 3411 Paid Roads (dfs)
    hdu 2896 病毒侵袭 (AC)
    hdu 3065 病毒侵袭持续中 (AC)
    poj 2251 Dungeon Master (bfs)
    java中debug使用
    Swing入门级小项目总结
  • 原文地址:https://www.cnblogs.com/tianqizhi/p/8451313.html
Copyright © 2020-2023  润新知