gpt4 book ai didi

python - 具有 OR 条件的 lxml xpath 过滤器不起作用

转载 作者:行者123 更新时间:2023-11-28 20:05:59 24 4
gpt4 key购买 nike

langs 对象是通过解析此文件生成的 lxml 对象:http://www.loc.gov/standards/codelists/languages.xml

这个 xpath 有效:

langs.node.xpath("//lang:language[lang:name='English']", namespaces={'lang':'info:lc/xmlns/codelist-v1'})[0].findtext('lang:name', namespaces={'lang': 'info:lc/xmlns/codelist-v1'})

当我添加 | 的附加条件时lang:code = 'English' 像这样:

langs.node.xpath("//lang:language[lang:name='English' | lang:code='English']", namespaces={'lang':'info:lc/xmlns/codelist-v1'})[0].findtext('lang:name', namespaces={'lang': 'info:lc/xmlns/codelist-v1'})

我得到错误:

Traceback (most recent call last):
File "<console>", line 1, in <module>
File "lxml.etree.pyx", line 1509, in lxml.etree._Element.xpath (src/lxml /lxml.etree.c:50717)
File "xpath.pxi", line 318, in lxml.etree.XPathElementEvaluator.__call__ (src/lxml/lxml.etree.c:145969)
File "xpath.pxi", line 238, in lxml.etree._XPathEvaluatorBase._handle_result (src/lxml/lxml.etree.c:144977)
File "xpath.pxi", line 223, in lxml.etree._XPathEvaluatorBase._raise_eval_error (src/lxml/lxml.etree.c:144785)
XPathEvalError: Invalid type

最佳答案

正确的语法是or,而不是|:

nsmap={'lang': 'info:lc/xmlns/codelist-v1'}
langs.node.xpath("//lang:language[lang:name='English' or lang:code='English']",
namespaces=nsmap)[0].findtext('lang:name', namespaces=nsmap)

关于python - 具有 OR 条件的 lxml xpath 过滤器不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25798815/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com