2014-01-29 121 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