2013-07-31 57 views
0

到目前爲止,我有以下Xpath設置從href中拉出單詞'gallery',但它返回的是整個url而不是單詞庫。你能幫我解釋一下我做錯了嗎?謝謝你,非常感謝!Xpath規則 - 包含()不返回我想要的

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

如果存在任何此類鏈接,或者對於每個謂詞產生的鏈接,您是否希望它只返回單詞庫一次? (無論哪種方式,這都是一個奇怪的要求。) – LarsH

+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。