XML 文件解析

一、代码

XML文件如下:
<doc>
  <branch name="codingpy.com" hash="1cdf045c">
    text,source
  </branch>
  <branch name="release01" hash="f200013e">
    <sub-branch name="subrelease01">
      xml,sgml
    </sub-branch>
  </branch>
  <branch name="invalid">
  </branch>
</doc>
   import xml.etree.cElementTree  as cET
    etree = cET.ElementTree(file= './datas/sourceFile/test_ceshi.xml')
    # 获取根节点
    root = etree.getroot()
    print(etree)  #  <xml.etree.ElementTree.ElementTree object at 0x000002659EBE9E48> 对象
    # 获取根节点的标签与属性值
    print(root.tag,root.attrib)
    # 获取根节点的子节点
    for child_point in root:
        print(child_point,child_point.tag,child_point.text.strip())
    # 根据索引 切片
    print(root[0].tag, root[0].text.strip())
    print(root[0:3])     # 对象支持切片
    # 查找元素
    #  Element对象有一个iter方法,可以对某个元素对象之下所有的子元素进行深度优先遍历(DFS)。ElementTree对象
    # 同样也有这个方法。下面是查找XML文档中所有元素的最简单方法:
    print('以下为查找元素:')
    for elem in etree.iter():
        print(elem.tag,elem.text.strip())
    print('根据标签查找元素:')
    for elem in etree.iter(tag='branch'):
        print(elem.tag, elem.text.strip())
    # 使用XPath查找感兴趣的元素,更加方便。Element对象中有一些find方法可以接受Xpath路径作为参数,find方法会返
    # 回第一个匹配的子元素,findall以列表的形式返回所有匹配的子元素,
    #  iterfind则返回一个所有匹配元素的迭代器(iterator)。ElementTree对象也具备这些方法,相应地它的查找是从根
    # 节点开始的。
    print('下面是一个使用XPath查找元素的示例:')
    for elem in etree.iterfind('doc/branch/sub-branch'):
        print(elem.tag, elem.attrib)
    print('上面的代码返回了branch元素之下所有tag为sub - branch的元素。接下来查找所有具备某个name属性的branch元素:')
    for elem in etree.iterfind('branch[@name="release01"]'):
        print(elem.tag, elem.attrib)

            参考文章: https://www.cnblogs.com/deadwood-2016/p/8116863.html

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值