我有以下 xpath 表达式
//pre//strong[@class='messageText']
给我出了
"this output O/13-1405 is valid for this scenario"
我需要的是只获取"O/13-1405"
这应该是通用的,因为每个测试在文本中都有不同的输出
答案 0 :(得分:0)
如果此模式已修复(或者您可以直接在所需子字符串周围找到固定且不同的模式),则可以使用substring-before
和substring-after
来减少结果:
substring-after(substring-before(//pre//strong[@class='messageText'], ' is valid for this scenario'), 'this output ')
如果输出的长度始终完全相同,您也可以使用substring($text, $start, $length)
。
如果你需要grep out of any text并需要正则表达式,你需要使用Java代码或嵌入另一个XPath处理器,它至少支持XPath 2.0(Saxon可以很容易地嵌入)。