使用xpath时在lxml中获取错误“无效谓词”

时间:2019-09-23 20:08:52

标签: xml python-3.x xpath lxml

我有一个包含表演的xml文件。我想通过xpath查询从该xml中获取一个条目。

使用QXmlEdit和Xmplify之类的工具查询xml时,以及以下查询://sendung[standard/stammdaten/metadaten/idnr[text() = '11223344' ]] 我收到的正是我期望的结果。在带有xml的python 3.7上的相同查询不起作用。

root.findall(".//dmb:sendung[dmb:standard/dmb:stammdaten/dmb:metadaten/dmb:idnr[text()='{}']]".format(id), namespaces=self.__namespace_map)

我得到的错误是SyntaxError: invalid predicate

1 个答案:

答案 0 :(得分:0)

如果您使用xpath()方法,它应该可以工作。 findall() does not support所有XPath 1.0。在您的表情中,有两个功能不起作用:

  • 嵌套谓词。
  • text()节点测试。