Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取错误“;无效谓词";在使用xpath时使用lxml_Xml_Python 3.x_Xpath_Lxml - Fatal编程技术网

获取错误“;无效谓词";在使用xpath时使用lxml

获取错误“;无效谓词";在使用xpath时使用lxml,xml,python-3.x,xpath,lxml,Xml,Python 3.x,Xpath,Lxml,我有一个包含节目的xml文件。我想要一个xpath查询,从这个xml中获取一个条目 当使用QXmlEdit和Xmplify等工具查询xml以及以下查询时://sendung[standard/stammdaten/metadaten/idnr[text()=“11223344]” 我收到的正是我期待的结果。使用lxml在Python3.7上执行相同的查询不起作用 root.findall(".//dmb:sendung[dmb:standard/dmb:stammdaten/dmb:metada

我有一个包含节目的xml文件。我想要一个xpath查询,从这个xml中获取一个条目

当使用QXmlEdit和Xmplify等工具查询xml以及以下查询时:
//sendung[standard/stammdaten/metadaten/idnr[text()=“11223344]”
我收到的正是我期待的结果。使用lxml在Python3.7上执行相同的查询不起作用

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

我得到的错误是
SyntaxError:invalid predicate

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

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

我可能错了,但我相信
findall()
在XPath的使用方面是有限的(基本上与ElementTree相同)。尝试使用
xpath()
而不是
findall()