在python中获取xml指定属性的所有节点

时间: 2023-07-29 admin 互联网

在python中获取xml指定属性的所有节点

在python中获取xml指定属性的所有节点

其他表述:

  • 在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'])

 并且还可以直接修改,好了就这样

其他可能的方法 使用pyquery:jquery的python实现

其他在过程中帮助我的文档

  • 获取特定的xml节点属性 
  • lxml基本用法 
  • XPath语法和lxml模块(数据提取) .html