XPATH表达式,以选择不与某个父元素共线的所有元素


XPATH expression to select all elements who do not cotain a certain parent

我在PHP中使用XPATH。假设我有以下HTML

<div>
    <a>
        <img id='img1' src='src1' />
    </a>
    <div>
        <img id='img2' src='src2' />
    </div>
    <img id='img3' src='src3' />
    <div>
        <a>
            <img id='img4' src='src4' />
        </a>
    <div>
    <a>
        <div>
            <img id='img5' src='src5' />
        </div>
    <a>
</div>

我想编写一个XPATH表达式,它将选择所有没有<a>标记作为直接父标记的<img>标记。

因此,在上面的示例中,只有img2immg3img5应该来自该表达式的选择。

//img[not(parent::a)]

试试看。