例如我们有这个 xml:
<body>
<a>
<b>
<c>hello</c>
<c>world</c>
</b>
</a>
<a>
<b>
<c>another hello</c>
<c>world</c>
</b>
</a>
</body>
通过 Xpath 查询我们可以找到所有“B”标签。但接下来我们需要在每个找到的“B”标签中找到所有“C”标签。
我写了这段代码:
$dom = new DOMDocument();
$dom->loadXML($xml);
$xpath = new DOMXPath($dom);
$btags = $xpath->query("//b");
foreach ($btags as $b)
{
$ctags = $xpath->query("/b/c", $b);
foreach ($ctags as $c) {
echo $c->nodeValue;
}
}
但这不起作用。
可以用 XPath 查询来做到这一点吗?
对于第二个 XPath,请尝试以下操作:$ctags = $xpath->query("c", $b);
第二个 XPath 已经相对于“b”节点...如果我没记错的话,PHP XPath 语句中的相对路径要求您省略前导的“/”。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)