次のxpath式があります
//pre//strong[@class='messageText']
それは私に与えます
"this output O/13-1405 is valid for this scenario"
私が必要とするのは"O/13-1405"
、すべてのテストがテキストで異なる出力を取得するため、これだけを汎用にすることです
このパターンが固定されている場合 (または、必要な部分文字列の周りに直接固定された明確なパターンを見つけることができる場合)、 と を使用substring-before
しsubstring-after
て結果を削減できます。
substring-after(substring-before(//pre//strong[@class='messageText'], ' is valid for this scenario'), 'this output ')
出力が常にまったく同じ長さである場合は、 も使用できますsubstring($text, $start, $length)
。
任意のテキストから grep する必要があり、正規表現が必要な場合は、Java コードを使用するか、少なくとも XPath 2.0 をサポートする別の XPath プロセッサを埋め込む必要があります (Saxon は非常に簡単に埋め込むことができます)。