Python 中支持 XPath 2.0 的库

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

是否可以在 Python 中使用 XPath 2.0 函数,如

starts-with()
ends-with()
contains()
?我尝试使用
lxml
defusedxml
,但不幸的是它们不支持任何这些功能。

我知道我可以使用

substring()
matches()
来解决问题,但我的情况确实很复杂,所以处理更多可读的函数会更好。

有支持 XPath 2.0 规范的库吗?

python xpath lxml libxml2 xpath-2.0
3个回答
1
投票

saxonpy基于Saxon He并支持Xpath 2.0。 您可以查看 github 存储库中的一些示例来帮助您入门:

https://github.com/tennom/saxonpy


0
投票

SaxonC 12.X 的 python 轮子是官方版本,您可以在这里找到:https://pypi.org/user/saxonica/


0
投票

为此使用 elementpath 可能是最简单的,它支持内置的 xml.etree 模块和 lxml。

>>> import elementpath
>>> from xml.etree import ElementTree
>>> root = ElementTree.XML('<A><B1/><B2><C1/><C2/><C3/></B2></A>')
>>> elementpath.select(root, '/A/B2/*')
[<Element 'C1' at ...>, <Element 'C2' at ...>, <Element 'C3' at ...>]
© www.soinside.com 2019 - 2024. All rights reserved.