实用快速读取Xml文件的模块elementTree!!

引言:Xml是一种层级化的树状结构,可以引用树状结构表示

1. 导入

import xml.etree.ElementTree as ET

2. 从文件中读取xml

  tree = ET.parse("xxx.xml")

  # 获取Xml文件的根节点,是一个Element对象

  root  = tree.getroot()

   如果是xml文件是字符串的形式:

  root = ET.formstring(xxxx) 

3. Element 对象常用的属性:

  Element.tag--输出标签的名称

  Element.text -- 输出标签包含的内容

  Element.attrib -- 标签的属性,以键值对的形式存在

4. 查找Xml元素

  方法一:

  通过递归的方式,遍历根节点的所有子元素,获取树中所有的元素

  for child_root in root: 

    print(child_root.tag, child_root.text, child_root.attrib)

  方法二:

  使用Element.iter()方法遍历tree的所有元素

   for elem in root.iter():

    print(elem.tag,elem.attrib)

  ElementTree 对象常用的方法如下:

   1> find 返回第一个匹配的子元素

   2> findall 以列表的形式返回所有匹配的子元素(同一级的)

   3> 返回一个所有匹配元素的迭代器(iterator)

  方法三: 通过Xpath查找元素

Xpath 使用例子:
1. 返回所有tag为article的元素:
findall("article")
2. 返回 tag为article下之下所有tag为algorithm的元素,注意格式必须为 父节点/一代子节点,而不能为父节点/二代子节点,比如article/interval 就会找不到
findall(article/algorithm)

  


posted @ 2022-05-07 08:15  河海星辰  阅读(241)  评论(0编辑  收藏  举报