• python解析XML:之二 (ElementTree)


    xml.etree.ElementTree 模块实现了解析、创建XML数据的简单有效的API ,ElementTree模块拥有两个类

    ElementTree: 代表整个XML文档,视作tree;用于对整个XML文档的操作;
    Element: 代表XML文档(tree)上的单个节点;用于对XML节点及子节点的操作;

    ElementTree类的方法:

    1) _setroot(element)  #以element替代当前的root element, 参数element是element实例
    2) getroot()                #获取XML tree的根element
    3) parse(source, parser = None)   # 加载一个XML文件到element tree;

                                                             参数source是文件名或文件对象;parser默认为标准的XMLParser;返回root element
    4) write(file, encoding = "us-ascii", xml_declaration = None, default_namespace = None, method = "xml", short_empty_elements = True)                                         # 将element tree写入xml文件;参数file - 文件名或文件对象;method为("xml", "html", "text"之一),默认为“xml”
    5) iter(tag = None)        #创建并返回root element的tree iterator

    6) find()/findall()/findtext()/iterfind      #同Element同样的方法
    7) getiterator(tag = None) #

    例:Parse XML
    import xml.etree.ElementTree as ET
    tree = ET.parse(xml_file_name)
    root = tree.getroot() #获取XML文件的root元素
    或者:
    root = ET.fromstring(country_data_as_string) # ?

    获取子节点信息:
    for child in root:
      print (child.tag, child.attrib)

    Element类
    属性
    ======
    tag # 元素类型:element type
    text # 元素起始tag与结尾tag之间的文本
    attrib #字典,包含了element的属性
    tail #element结尾tag和下一个起始tag之间的文本

    方法
    ======
    1) clear()方法                      #重置element,去掉所有subelements,清除所有属性,并设置text及tail属性为None
    2) get(key, default = None)      #获取element的属性 ,此属性命名为key?
    3) items()                                 #获取以列表形式返回element的(name, value)对;顺序随机
    4) keys()                                   #以列表形式返回element属性;顺序随机
    5) set(key, value)                      #将key属性的元素的值设置为value

    subelement的方法:
    1) append(subelement) #添加一个subelement
    2) extend(subelements) #通过列表对象追加0个或多个subelements
    3) find(match, namespaces = None) # 查询第一个跟match匹配的subelement (以tag或者path)
    4) findall(match, namespaces = None) #查询所有匹配的subelements
    5) getchildren() # list(elem)
    6) getiterator(tag = None) #Element.iter()
    7) insert(index, subelement) #在指定位置插入subelement
    8) iter(tag = None): 以当前element为root,创建一个tree iterator
    9) iterfind(match, namespaces = None) #查询所有匹配的subelements
    10) itertext() #创建一个text iteratror
    11) makeelement(tag, attrib) #创建与当前element类型相同的element 对象;最好用SubElement()工厂方法替代此方法
    12) remove(subelement) #去掉element的subelement;跟find*方法不同的是,此方法基于实例的identity,而不是tag或内容

  • 相关阅读:
    【Xamarin破解补丁找不到?】
    【Xamarin挖墙脚系列:Xamarin.Android的API设计准则】
    【给你几个使用Xamarin的理由】
    【Xamarin 跨平台机制原理剖析】
    HttpStatusCode 枚举
    C语音--static变量
    extern "c"用法
    C语言---类型转换
    VS2008资源问题解决方法
    003---hibernate主要接口介绍
  • 原文地址:https://www.cnblogs.com/tanql/p/4360164.html
Copyright © 2020-2023  润新知