【发布时间】:2016-02-15 15:05:37
【问题描述】:
以这个 XML 为例...
<test>
<tag0>
<tag1 is="mine">
<uselesstag>
<tag3 is="mine">test</tag3>
</uselesstag>
</tag1>
<tag2 is="mine">test2</tag2>
</tag0>
</test>
...并获取上下文节点的元素(需要上下文节点)
$dom = new DomDocument;
$dom->loadXML($xml);
$xpath = new DomXPath($dom);
$context = $xpath->query("//tag1")->item(0);
...如何获得包含任何上下文节点子节点的节点列表并包括自我上下文节点,该属性“is”等于“mine”?例如:我只想获取tag1和tag3元素(tag1是contextnode)
$res = $xpath->query('.//*[@is="mine"]',$context);
在这种情况下,节点列表上只有 tag3(子)可用。
$res = $xpath->query('..//*[@is="mine"]',$context);
在这种情况下,tag1(contextnode),tag3(child)和tag2(sibling)在节点列表中可用。
【问题讨论】: