获取不在属性为X

时间:2016-03-20 00:19:17

标签: php dom xpath domdocument

我有以下xpath查询,我不知道如何制作它,因此它只查找具有属性pi-repeat的项目,而不是具有该属性的子项。

$xpath = new DOMXPath($dom);
foreach ($xpath->query('//*[@pi-repeat]') as $node) {
    // Do stuff
}

Html示例:

<body>
    <div pi-repeat="thing1">
        <div pi-repeat="sub-item"></div>
    </div>
    <div class="a-class">
        <div pi-repeat="thing2">
            <div pi-repeat="sub-item"></div>
        </div>
    </div>
</body>

正如您在此处看到的,有四个pi-repeat属性,我希望我的查询仅选择不在元素pi-repeat属性中的属性。

在这种情况下,只会选择thing1thing2

1 个答案:

答案 0 :(得分:3)

下面XPath中的第二个谓词将完成这项工作。它过滤掉祖先元素具有//*[@pi-repeat][not(ancestor::*[@pi-repeat])] 属性的元素:

Calendar