在 Python 中查找 XML 属性 "NOT equal to"

Find XML attribute "NOT equal to" in Python

我有以下 XML:

<foo>
<bar x="0"/>
<bar x="1"/>
</foo>

我事先知道这里会有两个子元素,一个 x 为 0,另一个 x 为我不知道是什么。我想 select 具有不具有值 0 的属性的子元素。我猜你会这样做:

foo.find("bar[@x!='0']")

但这 return 没有任何意义。基于下面的 link,我尝试了以下方法,但出现错误。

foo.find("bar[not(@x='0')]")

Python lxml.html XPath "attribute not equal" operator not working as expected

您是否尝试将 .find 替换为 .xpath() 您问题中的 link 使用了 xpath。

from lxml import etree
path=r"C:\foo.xml"
tree = etree.parse(path)

print tree.xpath('bar[not(@x="0")]')