使用PHP DOMXpath遍历子节点?
发布时间:2020-12-13 16:28:20 所属栏目:PHP教程 来源:网络整理
导读:我在理解childNodes中存储的内容时遇到了一些麻烦.理想情况下,我想在每个子节点上做另一个xquery,但似乎无法直截了当.这是我的情景: 数据: div class="something" h3 a href="link1.html"Link text 1/a /h3 div class"somethingelse"Something else text 1
我在理解childNodes中存储的内容时遇到了一些麻烦.理想情况下,我想在每个子节点上做另一个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->查询方法的第二个参数告诉查询将此节点作为上下文,请参阅更多http://fr2.php.net/manual/en/domxpath.query.php (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |