用Xpath获得第一个祖先

gui*_*ume 2 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>
Run Code Online (Sandbox Code Playgroud)

有了XPath,我想得到第一个父城.例如,对于Item1,Item2我想拥有City 1而对于Item3,Item4我想拥有City 2

有可能吗?PS:我无法编辑源代码.

谢谢

Dim*_*hev 5

我想使用XPath来获得第一个父祖先.

该术语不正确且具有误导性."父祖先"没有意义,因为父母永远是祖先.

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

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

这说,

用途:

preceding::span[@class='city'][1]
Run Code Online (Sandbox Code Playgroud)

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