如何从具有特定值的属性的 XML 文件中获取元素 [英] How can I get element from XML file with attribute having specific value
本文介绍了如何从具有特定值的属性的 XML 文件中获取元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
XML 文件:
<Node name="node1">
<Node name="node2">
<Node name="node3">
<Node name="node4">
...
</Node>
</Node>
</Node>
</Node>
如何选择或获取具有值为node3"(或任何特定值)的name"属性的Node"对象?
How to select or get "Node" object with "name" attribute having value as "node3" (or any specific value)?
目前我正在使用 xml.etree.ElementTree
Currently I am using xml.etree.ElementTree
from xml.etree import ElementTree
document = ElementTree.parse( 'filename.xml' )
nodes = document.find( 'Node')
for node in nodes:
if node.attribute('name') == "node3":
print("found")
break
是否有更好的方法来避免 for 循环?我对其他 XML 解析器模块也很好.
Is there better way to avoid for loop? I am fine with other XML parser modules as well.
我正在使用 python 2.7
推荐答案
With lxml
你可以使用 XPath:
With lxml
you can use XPath:
In [1]: from lxml.etree import parse
In [2]: tree = parse('nodes.xml')
In [3]: tree.xpath('//Node[@name="node3"]')
Out[3]: [<Element Node at 0x180ec30>]
有多个谓词:
In [4]: tree.xpath('//Node[@name="node3"][@value="value3"]')
Out[4]: [<Element Node at 0x155d1e0>]
这篇关于如何从具有特定值的属性的 XML 文件中获取元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文