zoukankan      html  css  js  c++  java
  • python学习-52 XML模块

     XML模块

    xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但是json使用起来更简单。

    例如:创建一个xml文件

    <data>
        <country name="china">
            <rank updated="yes">1</rank>
            <year>2019</year>
            <neighbor name="American"/>
        </country>
        <country name="Canada">
            <rank updated="yes">2</rank>
            <year>2019</year>
            <neighbor name="American"/>
        </country>
    </data>

    查询内容

    import xml.etree.ElementTree as ET
    
    tree = ET.parse("xml")
    root = tree.getroot()
    print(root.tag)
    print('__________________')
    
    #
    
    for a in root:                # 遍历根
        print(a.tag)
        print(a.attrib)
    
        for b in a :            # 遍历根的下一级
            print(b.text)
    
    for node in root.iter('year'):     #遍历节点,取year的内容
        print(node.tag,node.text)

    运行结果:

    data
    __________________
    country
    {'name': 'china'}
    2
    2019
    None
    country
    {'name': 'Canada'}
    2
    2019
    None
    year 2019
    year 2019
    
    Process finished with exit code 0

    修改和删除

    import xml.etree.ElementTree as ET
    
    tree = ET.parse("xml")
    root = tree.getroot()
    
    
    # 修改
    
    for node in root.iter("year"):
        new_year = int(node.text) + 1       #  年份加1
        node.text = str(new_year)
        node.set("updated","yes")         # 多加一个属性
    tree.write("xml_text.xml")           # 放到一个新的文件里
    
    
    
    # 删除
    for country in root.findall("country"):
        rank = int(country.find("rank").text)
        if rank >1:                     # 删除排名大于1的国家的信息
            root.remove(country)
    tree.write("xml_test2.xml")

    创建一个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 = "32"
    
    et = ET.ElementTree(new_xml)
    et.write("xml2_test.xml",encoding="utf-8",xml_declaration=True)
  • 相关阅读:
    Python编程笔记二进制、字符编码、数据类型
    Python之路Python内置函数、zip()、max()、min()
    替换RTXLogo插件说明
    RTX修改标题logo方法
    RTX和谐说明
    RTX数据表分析
    RTX系统整合记录
    HiMall 3接口鉴权参考
    第三方系统接入
    学习记录
  • 原文地址:https://www.cnblogs.com/liujinjing521/p/11320956.html
Copyright © 2011-2022 走看看