我有一段PHP代码,它可以删除所有至少有一个属性的节点。这里是我的代码:
<?php
$data = <<<DATA
<div>
<p>These line shall stay</p>
<p class="myclass">Remove this one</p>
<p>But keep this</p>
<div style="color: red">and this</div>
</div>
DATA;
$dom = new DOMDOcument();
$dom->loadHTML($data, LIBXML_HTML_NOIMPLIED);
$dom->removeChild($dom->doctype);
$xpath = new DOMXPath($dom);
$lines_to_be_removed = $xpath->query("//*[count(@*)>0]");
foreach ($lines_to_be_removed as $line) {
$line->parentNode->removeChild($line);
}
// just to check
echo $dom->saveHTML();
?>
如您在fiddle中所见,这是上述代码的当前输出:
<div>
<p>These line shall stay</p>
<p>But keep this</p>
</div>
虽然这是期望的结果:
<div>
<p>These line shall stay</p>
Remove this one
<p>But keep this</p>
and this
</div>
我该如何做到这一点?
<tag attribuve ..
容器。 - Martin AJ