用Xpath获得第一个祖先

时间:2012-10-11 21:51:23

标签: php xpath

我想使用XPath来获得第一个父祖先。 我想解析这样的代码:

<div>
    <span class="city">City 1</span>

    <div class="annonce">
        <span class="item">Item1</span>
    </div>
</div>
<div>
    <div class="annonce">

        <span class="item">Item2</span>
    </div>
</div>

<div>
    <span class="city">City 2</span>

    <div class="annonce">
        <span class="item">Item3</span>
    </div>
</div>
<div>
    <div class="annonce">
        <span class="item">Item4</span>
    </div>
</div>

对于XPath,我希望得到第一个父城。 例如,对于Item1,Item2我想拥有City 1 对于Item3,Item4我想要City 2

可以这样做吗? P.S:我无法编辑源代码。

由于

1 个答案:

答案 0 :(得分:5)

  

我想使用XPath来获取第一个父祖先。

此术语不正确且具有误导性。 “父祖先”没有意义,因为父母永远是祖先。

另外。您要选择的元素不是任何span[@class='item']元素的父元素或祖先。

最后,提供的文本不是格式良好的XML文档。在格式良好的XML文档中,只有一个顶级元素。

这就是说,

使用

preceding::span[@class='city'][1]

这将选择上下文(当前)节点的前一个span元素,其class属性的字符串值为字符串"city"