2014-01-29 120 views
0

這是數據的我的工作的例子:PHP的XPath查詢兄弟

<div class="category"> 
    fruit 
</div> 
<div class="location"> 
    <a href="/fruit">fruit</a> 
</div> 

改變是在第二個div的鏈接,我想拉在href部分的唯一的東西如何。

我該如何定位並提取它?

回答

1

更新:在XPath中,.代表「上下文節點」,或由前一路徑步驟中選擇的節點。要選擇其中元素的文本內容等於「果」:

/div[@class eq "category"][. eq "fruit"] 
    /following-sibling::div[@class eq "location"]/a/@href 

如果HTML文本節點格式化空白(因爲它是在你的例子),你可以使用功能匹配的文本節點的一部分:

/div[@class eq "category"][contains(., "fruit")] 
    /following-sibling::div[@class eq "location"]/a/@href 

原來的答案

您可以在許多不同的方式選擇href。根據你的標題,似乎你已經選擇div/@class eq "category",所以你可以使用following-sibling軸這樣的:

/div[@class eq "category"]/following-sibling::div[@class eq "location"]/a/@href 
+0

有帶class =「類別」多div的,我需要選擇包含單詞的一個「水果」。所以div的內容決定我是否抓住它的兄弟姐妹。我怎樣才能做到這一點? – Jimbotron

+0

@Jimbotron我添加了幾種方法來根據元素的文本進行選擇。 – joemfb