我想输出带有属性(ID或类)
的注释的parentNode如果我有这个HTML代码
<div><span><!--test--></span><div class="myclass"><!--test_comment--></div></div>
我想要以下输出
<div class="myclass"><!--test_comment--></div>
如果我有这个HTML代码
<div><span id="myid" style="color:blue;font-weight:bold"><!--test_comment--></span><div class="myclass"><!--test--></div></div>
我想要以下输出
<span id="myid" style="color:blue;font-weight:bold"><!--test_comment--></span>
这是我的带有xpath的php DOM代码
<?php
$html = <<<STR
<div><span><!--test--></span><div class="myclass"><!--test_comment--></div></div>
STR;
$dom = new DOMDocument;
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$node = $xpath->query('//comment()');
$myComment = $node->item(1)->textContent; // <!--test_comment-->
$myNode = $node->item(1)->parentNode->nodeName; // div
echo $node->item(1)->parentNode->nodeValue; //NOT WORKING
echo "<" . $myNode . ">" . $myComment . "</" . $myNode . ">";
?>
问题是我不知道如何搜索特定的评论()。想要有类似的$xpath->query('//comment() == "test_comment"');
我的PHP代码导致
<div>test_comment</div>
如何在div中获取属性(类或ID)? nodeValue无效。
当我是新手时,也欢迎对我的代码提出任何其他意见
答案 0 :(得分:0)
<?php
$dom = new DOMDocument;
$dom->loadHTML(data());
$xpath = new DOMXPath($dom);
$node = $xpath->query('//*[comment()]');
foreach( $node as $p ) {
echo 'output: ', $dom->saveXML($p), "\r\n";
}
function data() {
return <<< STR
<div><span id="myid" style="color:blue;font-weight:bold"><!--test--></span><p>no comment here</p><div class="myclass"><!--test_comment--></div></div>
STR;
}
打印
output: <span id="myid" style="color:blue;font-weight:bold"><!--test--></span>
output: <div class="myclass"><!--test_comment--></div>