其他表述:
- 在python中获取xml含有指定属性的所有节点
- 在python中获取xml含有特定属性的所有节点
- 依据属性筛选节点
简单看了一下python中xml模块的文档,只看到了通过tag和id来寻找节点,没有直接能够根据属性获取节点的方法。
心急的我没有第一时间找到网友们的解决方法,但是我要用,emmmm
自己实现遍历的想法,算了,不自己实现;
然后仔细查找资料,看文档发现了xpath
在尝试过程中使用标准库xml中ET, 其中的findall 说是支持xpath,但是我使用后 出现节点缺失,且文档提示 已经不安全;
最后使用 使用lxml 运用xpath语法选择属性
from lxml import etree
#载入xml文件
et = etree.parse('tpl2.xml')
# 获取所有含有属性pulgin 的节点
all_n_with_p = et.xpath('//*[@plugin]')
for n in all_n_with_p:
print(n.attrib['plugin'])
并且还可以直接修改,好了就这样