1 回答
TA贡献2039条经验 获得超7个赞
必须相对于给定的上下文节点选择评论。
xpath 表达式中的//(descendant-or-self) 前缀选择节点中任何位置的每个注释,无论上下文如何。
我建议使用.//(self, descendant-or-self) xpath 表达式进行相对搜索,以在提供的上下文中进行搜索。
例如,
<?php
$xml = <<< XML
<!-- FIRST -->
<div id="parent">
<!-- SECOND -->
<span id="child">
<!-- THIRD -->
</span>
</div>
XML;
$dom = new DOMDocument;
$dom->loadHTML($xml);
$xpath = new DOMXpath($dom);
文档中的所有评论
<?php
$comments = $xpath->query('.//comment()', $dom);
foreach($comments as $comment){
echo $comment->nodeValue.PHP_EOL;
}
FIRST
SECOND
THIRD
评论区里的所有评论div#parent
<?php
$el = $dom->getElementById('parent');
$comments = $xpath->query('.//comment()', $el);
foreach($comments as $comment){
echo $comment->nodeValue.PHP_EOL;
}
SECOND
THIRD
中的所有评论span#child
<?php
$el = $dom->getElementById('child');
$comments = $xpath->query('.//comment()', $el);
foreach($comments as $comment){
echo $comment->nodeValue.PHP_EOL;
}
THIRD
- 1 回答
- 0 关注
- 128 浏览
添加回答
举报