如何从xpath表达式中剥离文本



我有以下xpath表达式

//pre//strong[@class='messageText']

这让我失去了

"this output O/13-1405 is valid for this scenario"

我需要的是只得到"O/13-1405",这应该是通用的,因为每个测试都在文本中得到不同的输出

如果这个模式是固定的(或者你可以直接在想要的子串周围找到一个固定的、不同的模式),你可以使用substring-beforesubstring-after来减少结果:

substring-after(substring-before(//pre//strong[@class='messageText'], ' is valid for this scenario'), 'this output ')

如果输出始终具有完全相同的长度,则也可以使用substring($text, $start, $length)


如果您需要从任意文本中进行grep,并且需要正则表达式,那么您要么需要使用Java代码,要么嵌入另一个至少支持XPath2.0的XPath处理器(Saxon可以很容易地嵌入)。

最新更新