Php 使用Xpath获取第一个祖先

Php 使用Xpath获取第一个祖先,php,xpath,Php,Xpath,我想使用XPath来获取第一个父祖先。 我想解析如下代码: <div> <span class="city">City 1</span> <div class="annonce"> <span class="item">Item1</span> </div> </div> <div> <div class="annonce">

我想使用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>

城市1
项目1
项目2
城市2
项目3
项目4
使用XPath,我希望得到第一个父城市。 例如,对于Item1,Item2,我想要城市1 对于第三项,第四项,我想要第二个城市

有可能吗? 我不能编辑源代码

谢谢

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

这个术语是不正确和误导性的。“父母-祖先”没有意义,因为父母永远是祖先

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

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

这就是说,

使用

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

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

Oups,我没有再次阅读我的帖子。我同意“父母-祖先”的含义。我想说的是祖先。但你的代码是有效的。谢谢