• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    基于Python的XML格式的文件示例代码详解

    XML文件是可拓展标记语言,是一种简单的数据存储语言,被设计用来传输和存储数据

    在Python中XML的一些方法

    读取文件和内容

    #引用xml模块
    from xml.etree import ElementTree as ET
    
    # ET去打开xml文件
    tree = ET.parse("files/xo.xml")
    
    # 获取根标签
    root = tree.getroot()
    
    print(root) # Element 'data' at 0x7f94e02763b0>
    from xml.etree import ElementTree as ET
    
    content = """
    data>
      country name="Liechtenstein">
        rank updated="yes">2/rank>
        year>2023/year>
        gdppc>141100/gdppc>
        neighbor direction="E" name="Austria" />
        neighbor direction="W" name="Switzerland" />
      /country>
       country name="Panama">
        rank updated="yes">69/rank>
        year>2026/year>
        gdppc>13600/gdppc>
        neighbor direction="W" name="Costa Rica" />
        neighbor direction="E" name="Colombia" />
      /country>
    /data>
    """
    
    root = ET.XML(content) # 获取根标签 
    print(root) # Element 'data' at 0x7fdaa019cea0>

    读取节点数据

    from xml.etree import ElementTree as ET
    
    content = """
    data>
      country name="Liechtenstein" id="999" >
        rank>2/rank>
        year>2023/year>
        gdppc>141100/gdppc>
        neighbor direction="E" name="Austria" />
        neighbor direction="W" name="Switzerland" />
      /country>
       country name="Panama">
        rank>69/rank>
        year>2026/year>
        gdppc>13600/gdppc>
        neighbor direction="W" name="Costa Rica" />
        neighbor direction="E" name="Colombia" />
      /country>
    /data>
    """
    
    # 获取根标签 data
    root = ET.XML(content)
    
    country_object = root.find("country") # 获取XML文件中的country标签
    print(country_object.tag, country_object.attrib)# 获取country标签名  获取country标签地属性
    gdppc_object = country_object.find("gdppc")# 获取gdppc标签
    print(gdppc_object.tag,gdppc_object.attrib,gdppc_object.text)# 获取gdppc标签的名称  获取gdppc属性(没有属性为:{}) 获取gdppc标签里面的内容
    from xml.etree import ElementTree as ET
    
    content = """
    data>
      country name="Liechtenstein">
        rank>2/rank>
        year>2023/year>
        gdppc>141100/gdppc>
        neighbor direction="E" name="Austria" />
        neighbor direction="W" name="Switzerland" />
      /country>
       country name="Panama">
        rank>69/rank>
        year>2026/year>
        gdppc>13600/gdppc>
        neighbor direction="W" name="Costa Rica" />
        neighbor direction="E" name="Colombia" />
      /country>
    /data>
    """
    
    # 获取根标签 data
    root = ET.XML(content)
    
    # 获取data标签的孩子标签
    for child in root:
      # child.tag = conntry 获取到两个country标签
      # child.attrib = {"name":"Liechtenstein"}
      print(child.tag, child.attrib)
      for node in child:
        print(node.tag, node.attrib, node.text) # 获取到reank标签
    from xml.etree import ElementTree as ET
    
    content = """
    data>
      country name="Liechtenstein">
        rank>2/rank>
        year>2023/year>
        gdppc>141100/gdppc>
        neighbor direction="E" name="Austria" />
        neighbor direction="W" name="Switzerland" />
      /country>
       country name="Panama">
        rank>69/rank>
        year>2026/year>
        gdppc>13600/gdppc>
        neighbor direction="W" name="Costa Rica" />
        neighbor direction="E" name="Colombia" />
      /country>
    /data>
    """
    
    root = ET.XML(content)
    
    # 找到子子孙孙的year标签
    for child in root.iter('year'):
      print(child.tag, child.text)
    from xml.etree import ElementTree as ET
    
    content = """
    data>
      country name="Liechtenstein">
        rank>2/rank>
        year>2023/year>
        gdppc>141100/gdppc>
        neighbor direction="E" name="Austria" />
        neighbor direction="W" name="Switzerland" />
      /country>
       country name="Panama">
        rank>69/rank>
        year>2026/year>
        gdppc>13600/gdppc>
        neighbor direction="W" name="Costa Rica" />
        neighbor direction="E" name="Colombia" />
      /country>
    /data>
    """
    
    root = ET.XML(content)
    v1 = root.findall('country') # 找到所有的country标签
    print(v1)
    
    v2 = root.find('country').find('rank') # 找到country标签中的rank标签
    print(v2.text)

    删除和修改节点

    from xml.etree import ElementTree as ET
    
    content = """
    data>
      country name="Liechtenstein">
        rank>2/rank>
        year>2023/year>
        gdppc>141100/gdppc>
        neighbor direction="E" name="Austria" />
        neighbor direction="W" name="Switzerland" />
      /country>
       country name="Panama">
        rank>69/rank>
        year>2026/year>
        gdppc>13600/gdppc>
        neighbor direction="W" name="Costa Rica" />
        neighbor direction="E" name="Colombia" />
      /country>
    /data>
    """
    
    root = ET.XML(content)
    
    # 修改节点内容和属性
    rank = root.find('country').find('rank')
    print(rank.text)
    rank.text = "999" # 修改rank标签里面的内容
    rank.set('update', '2020-11-11') # 为rank标签新增一个update属性
    print(rank.text, rank.attrib)
    ############ 保存文件 ############
    tree = ET.ElementTree(root)
    tree.write("new.xml", encoding='utf-8')
    
    # 删除节点
    root.remove( root.find('country') )
    print(root.findall('country'))
    
    ############ 保存文件 ############
    tree = ET.ElementTree(root)
    tree.write("newnew.xml", encoding='utf-8')

    构建文档

    home>
      son name="儿1">
        grandson name="儿11">/grandson>
        grandson name="儿12">/grandson>
      /son>
      son name="儿2">/son>
    /home>
    from xml.etree import ElementTree as ET
    
    # 创建根标签
    root = ET.Element("home")
    
    # 创建节点大儿子
    son1 = ET.Element('son', {'name': '儿1'})
    # 创建小儿子
    son2 = ET.Element('son', {"name": '儿2'})
    
    # 在大儿子中创建两个孙子
    grandson1 = ET.Element('grandson', {'name': '儿11'})
    grandson2 = ET.Element('grandson', {'name': '儿12'})
    son1.append(grandson1)
    son1.append(grandson2)
    
    # 把儿子添加到根节点中
    root.append(son1)
    root.append(son2)
    
    tree = ET.ElementTree(root)
    tree.write('oooo.xml', encoding='utf-8', short_empty_elements=False) #short_empty_elements 是否采取短标签的形式创建
    famliy>
      son name="儿1">
        grandson name="儿11">/grandson>
        grandson name="儿12">/grandson>
      /son>
      son name="儿2">/son>
    /famliy>
    from xml.etree import ElementTree as ET
    
    # 创建根节点
    root = ET.Element("famliy")
    
    
    # 创建大儿子
    son1 = root.makeelement('son', {'name': '儿1'})
    # 创建小儿子
    son2 = root.makeelement('son', {"name": '儿2'})
    
    # 在大儿子中创建两个孙子
    grandson1 = son1.makeelement('grandson', {'name': '儿11'})
    grandson2 = son1.makeelement('grandson', {'name': '儿12'})
    
    son1.append(grandson1)
    son1.append(grandson2)
    
    
    # 把儿子添加到根节点中
    root.append(son1)
    root.append(son2)
    
    tree = ET.ElementTree(root)
    tree.write('oooo.xml',encoding='utf-8')
    famliy>
    	son name="儿1">
      	age name="儿11">孙子/age>
      /son>
    	son name="儿2">/son>
    /famliy>
    from xml.etree import ElementTree as ET
    
    
    # 创建根节点
    root = ET.Element("famliy")
    
    
    # 创建节点大儿子
    son1 = ET.SubElement(root, "son", attrib={'name': '儿1'})
    # 创建小儿子
    son2 = ET.SubElement(root, "son", attrib={"name": "儿2"})
    
    # 在大儿子中创建一个孙子
    grandson1 = ET.SubElement(son1, "age", attrib={'name': '儿11'})
    grandson1.text = '孙子'
    
    
    et = ET.ElementTree(root) #生成文档对象
    et.write("test.xml", encoding="utf-8")
    user>![CDATA[你好呀]]/user>
    from xml.etree import ElementTree as ET
    
    # 创建根节点
    root = ET.Element("user")
    root.text = "![CDATA[你好呀]]"
    
    et = ET.ElementTree(root) # 生成文档对象
    et.write("test.xml", encoding="utf-8")

    到此这篇关于基于Python的XML格式的文件的文章就介绍到这了,更多相关python xml格式文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • Python大数据之使用lxml库解析html网页文件示例
    • Python3使用xml.dom.minidom和xml.etree模块儿解析xml文件封装函数的方法
    • python 批量修改 labelImg 生成的xml文件的方法
    • 对python修改xml文件的节点值方法详解
    • Python实现的读取/更改/写入xml文件操作示例
    • Python Xml文件添加字节属性的方法
    上一篇:pytorch安装及环境配置的完整过程
    下一篇:pyqt qlistwidget改变item颜色的操作
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    基于Python的XML格式的文件示例代码详解 基于,Python,的,XML,格式,文件,