我正在尝试从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']
),则正则表达式可能会更强大。