zoukankan      html  css  js  c++  java
  • 使用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>
  • 相关阅读:
    微信二维码 场景二维码 用于推送事件,关注等 注册用户 ,经过测试
    简单的 Helper 封装 -- CookieHelper
    简单的 Helper 封装 -- SecurityHelper 安全助手:封装加密算法(MD5、SHA、HMAC、DES、RSA)
    Java反射机制
    Windows Azure Web Site (13) Azure Web Site备份
    Windows Azure Virtual Machine (1) IaaS用户手册
    Windows Azure Web Site (1) 用户手册
    Windows Azure Web Site (12) Azure Web Site配置文件
    Windows Azure Web Site (11) 使用源代码管理器管理Azure Web Site
    Windows Azure Web Site (10) Web Site测试环境
  • 原文地址:https://www.cnblogs.com/Centwei/p/14504481.html
Copyright © 2011-2022 走看看