我在理解子节点中到底存储了什么时遇到了一些问题。理想情况下,我想在每个子节点上执行另一个 xquery,但似乎无法弄清楚。这是我的场景: 数据:
<div class="something">
<h3>
<a href="link1.html">Link text 1</a>
</h3>
<div class"somethingelse">Something else text 1</div>
</div>
<div class="something">
<h3>
<a href="link2.html">Link text 2</a>
</h3>
<div class"somethingelse">Something else text 2</div>
</div>
<div class="something">
<h3>
<a href="link3.html">Link text 3</a>
</h3>
<div class"somethingelse">Something else text 3</div>
</div>
还有代码:
$html = new DOMDocument();
$html->loadHtmlFile($local_file);
$xpath = new DOMXPath( $html );
$nodelist = $xpath->query( "//div[@class='something']");
foreach ($nodelist as $n) {
Can I run another query here? }
对于“某物”的每个元素(即 $n),我想访问两段文本和 href 的值。我尝试使用 childNode 和另一个 xquery 但无法正常工作。任何帮助将不胜感激!
最佳答案
是的,您可以运行另一个 xpath 查询,类似这样:
foreach ($nodelist as $n)
{
$other_nodes = $xpath->query('div[@class="somethingelse"]', $n);
echo $other_nodes->length;
}
这将为您提供带有类 somethingelse 的内部 div,$xpath->query 方法的第二个参数告诉查询将此节点作为上下文,查看更多 http://fr2.php.net/manual/en/domxpath.query.php
关于php - 使用 PHP DOMXpath 遍历子节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7896943/