实用快速读取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)