XPath - 查找类似但包含非字母数字字符



我正在尝试从xml文档中搜索文本,该文本删除了非aplha数字字符,与输入文本匹配。例如:

要搜索的文本:"一些文本">

<xml>
<elem>sometext</elem>    <- match
<elem>some text</elem>   <- match
<elem>some.text</elem>   <- match
<elem>someetext</elem>   <- no match
</xml>

这可以通过 xpath 实现吗?

在 XPath 1 中,对于简单的要求,您可以使用translate函数来去除字符,例如/xml/elem[translate(., ' .', '') = 'sometext'].在 XPath 2 及更高版本中,您可以使用replace的正则表达式支持,如果您需要处理超过 ASCII 的字母(例如/xml/elem[replace(., '[^p{L}p{N}]+', '') = 'sometext']),则正则表达式可能会更强大。

最新更新