不能在带有 lxml etree 的 xpath 中使用 translate() 方法

问题描述 投票:0回答:1

我想用 Python 中的 lxml 库翻译来降低我的文本。我的代码如下

r = element.xpath('./a/translate(text(), "A", "a")')

但它给了我一个例外:

lxml.etree.XPathEvalError: Invalid expression

我只想用 xpath 来做这件事(不用用 Python 编写代码)。请给我一个解决方案。谢谢

python xpath lxml
1个回答
0
投票

您可以通过将翻译包在外面来尝试下面的代码

from lxml import etree

xml = '''<root>
    <a>A TEXT CONTENT</a>
</root>'''

root = etree.fromstring(xml)
element = root.xpath('translate(./a/text(), "A", "a")')
print(element)

结果

a TEXT CONTENT

还可以具体多翻译

element = root.xpath('translate(./a/text(), "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "abcdefghijklmnopqrstuvwxyz")')

结果

a text content
© www.soinside.com 2019 - 2024. All rights reserved.