Xpath规则 - contains()没有返回我想要的内容

时间:2013-07-31 17:19:41

标签: xpath contains xpath-2.0

到目前为止,我已将以下Xpath设置为从href中提取“gallery”一词,但它返回的是整个网址,而不仅仅是单词库。你能帮我解释一下我做错了吗?谢谢你,非常感谢!

$x("//link[@rel='canonical' and contains(@href,'gallery')]")

1 个答案:

答案 0 :(得分:0)

您当前的XPath表达式,

$x("//link[@rel='canonical' and contains(@href,'gallery')]")

返回<link>个元素的序列。根据您评估它们的方式,您可能会获得其文本内容。

如果您只想要单词'gallery',可以在XPath 2.0中说

$x("//link[@rel='canonical' and contains(@href,'gallery')]/'gallery'")

将返回一个字符串序列,每个'gallery'元素一个<link>,用于完成谓词。

或者你可以说

$x("if (exists(//link[@rel='canonical' and contains(@href,'gallery')]))
       then 'gallery' else null")

将返回'gallery'(一次)或null。