ElementTree解析XML文件
常用方法:
- Element.findall(): 只找到带有标签的元素,该标签是当前元素的直接子元素。
- Element.find() :找到第一个带有特定标签的子元素。
- Element.text:访问标签的内容
- Element.get():访问标签的属性值
- ElementTree.write() :创建xml文件或向xml中写入数据。
- Element.set():添加和修改标签的属性和属性值。
- Element.append():添加孩子节点
8:SubElement():用于创建新的子元素
查找XML中指定元素的属性
查找country节点的属性:attrib:元素属性,text:元素的值
for country in root.findall("country"):
... print(country.attrib)
在country节点中查找指定名称节点的值
for country in root.findall("country"):
... rank=country.find("rank").text =========》find:只匹配找到结果的第一个
... name=country.get("name")
... print(name,rank)
查找country节点下rank属性的内容(tag:节点名称,text:标签内容)
for elem in tree.iterfind("country/rank"):
... print(elem.tag,elem.text)
...
('rank', '1')
('rank', '4')
('rank', '68')
查找指定节点子节点的tag和属性
for elem in tree.iterfind("branch/sub-branch"):
... print(elem.tag,elem.attrib)
...
('sub-branch', {'name': 'subrelease01'})
添加子节点的属性
给rank元素添加一个update属性,它的值为yes
for rank in root.iter("rank"):
... rank.set("updated","yes")
...
tree.write("output.xml") =============>将添加的结果保存至XML
为root的第一个子节点添加foo=bar的属性
root[0].set("foo","bar")
tree.write("output.xml")
删除操作
del root[2] ====================》删除第3个子节点(节点下标从0开始)
tree.write("output.xml")
修改XML属性的值
构建XML文件
一是你先读取一个XML文档,进行修改,然后再将修改写入文档,二是从头创建一个新XML文档
浙公网安备 33010602011771号