2017-08-16 55 views
0

我成功地使用這個XPath查詢:XPath查詢URL與一個文件夾深度只有

//div[(@class="result")]//a[contains(@href,"pinterest.com")]/@href 

我使用XPath查詢(用simple_html_dom.php)的URL是this一個在這裏。 現在,我想找到pinterest.com/one-folder-deep-only結果,並排除所有網址,深度超過一個目錄,如pinterest.com/one-folder-deep-only/thispinterest.com/one-folder-deep-only/this/this。我不知道是否有辦法做到這一點。已經搜索了很多,但沒有發現任何東西。也許我的搜索條件不是最好的。

你有什麼想法嗎?感謝您在這裏幫助我。

我測試使用Chrome XPath Helper查詢。

回答

0

「//」是評估所有級別/深度。 「一」的標籤,而不是之前只用一個「/」,對於「一個」查詢只評價直接孩子

//div[(@id="first-result")]/a[contains(@href,"url.com")]/@href 

注意使用/,而不是//的。

//a[contains(@href, "url.com") and not(contains(substring-after(./@href, 'url.com/'), "/"))]/@href 

解決方案的XPath 2.0:

//a[contains(@href, "url.com") and count(tokenize(@href, "/"))=2]/@href 

注意,如果在真正的HTML源href開始,與"http://url.com"應指定=4

+0

不能得到這個工作。沒有使用此版本的結果。不過謝謝。 – vloryan

1

嘗試下面的XPath僅需要錨選擇@href而不是=2

+0

我已經嘗試了第一行,但是我無法得到任何結果:( – vloryan

+0

您能提供相同的HTML代碼示例嗎?同時指定您使用的工具 – Andersson

+0

我已經編輯了上面的問題,提供了更多信息和URL我正在使用查詢,感謝您的幫助和時間! – vloryan