• 使用python操作XML增删改查


    什么是XML?

    • XML 指可扩展标记语言(EXtensible Markup Language)
    • XML 是一种标记语言,很类似 HTML
    • XML 的设计宗旨是传输数据,而非显示数据
    • XML 标签没有被预定义。您需要自行定义标签。
    • XML 被设计为具有自我描述性。
    • XML 是 W3C 的推荐标准

    参考文献

    官方文档

    导入模块

    import xml.etree.ElementTree as ET

    可以从xml文件、字符串中解析读取解析XML

    新建一个xml文件

    <?xml version="1.0" encoding="UTF-8"?>
        <students>
            <student>
                <name>张三</name>
                <age>18</age>
                <score>89</score>
            </student>
            <student>
                <name>李四</name>
                <age>19</age>
                <score>81</score>
            </student>
            <student>
                <name>王五</name>
                <age>17</age>
                <score>92</score>
            </student>
        </students>
      从xml文件中读取,使用getroot()获取根节点,得到的是一个Element对象
    tree = ET.parse('students.xml')
    root = tree.getroot()

     从字符串变量中读取,返回的是Element对象

    root = ET.fromstring(country_data_as_string)

    访问XML

    每个Element都有以下属性

     #tag = element.text #访问Element标签
        #attrib = element.attrib #访问Element属性
        #text = element.text #访问Element文本
     
        for element in root.findall('student'):
            tag = element.tag #访问Element标签
            attrib = element.attrib #访问Element属性
            text = element.find('name').text #访问Element文本
            print(tag, attrib, text)
     
         print(root[0][0].text) #子节点是嵌套的,我们可以通关索引访问特定的子节点

    查找元素

    Element 提供了一些方法来帮助我们对他的子节点进行遍历

    1、Element.iter()

        for student in root.iter('student'):
            print student[0].text
        out:
        张三
        李四
        王五

      2、Element.findall()

    for element in root.findall('student'):
            name = element.find('name').text
            age = element.find('age').text
            score = element.find('score').text
            print name,age,score
        out:
        张三 18 89
        李四 19 81
        王五 17 92

    ElementTree.write()将构建的XML文档写入文件。修改XML

    • Element.text = '' 直接改变字段内容
    • Element.append(Element) 为当前的Elment对象添加子对象
    • Element.remove(Element) 删除Element节点
    • Element.set(key, value) 添加和修改属性
    • ElementTree.write('filename.xml') 写出(更新)XMl文件

    创建XML

    • ElementTree.Element() 构建一个节点
    • ElementTree.SubElement(Element,tag) 构建一个子节点
     
        a = ET.Element('a')  
        b = ET.SubElement(a, 'b')  
        c = ET.SubElement(a, 'c')  
        print ET.dump(a)  
        out:
        &lt;a>&lt;b />&lt;c />&lt;/a>
  • 相关阅读:
    Git基操
    阿里云Centos7安装mysql5.7
    Centos安装jdk8
    BD-rate/BD-BitRate/BDBR/BD-PSNR
    应用统计作业(1)——概率统计知识求解以定积分的近似值
    标量对向量、标量对矩阵、向量对向量、矩阵对矩阵的求导和微分计算
    JM8.6(H.264编码器)源码注释——码率控制部分主要推导
    二、全国大学生电子设计竞赛测控(无人机)方向___赛题分析
    C#-WebForm-Request、Response、QueryString
    webform 页面传值的方法总结
  • 原文地址:https://www.cnblogs.com/Centwei/p/14504481.html
Copyright © 2020-2023  润新知