【发布时间】:2014-06-02 16:54:19
【问题描述】:
拥有:
$content=
'<div id="parent">
<div class="children">
This is short content
</div>
<div class="children">
This is a very long content even longer than the Short content
</div>
<p>
This is a Short content in a paragraph
</p>
This is a Short content without a html elemnt
</div>';
我可以通过class(或id)使用DOMDocument 删除节点,如下所示:
$dom->loadHTML($content);
$xpath = new DOMXpath($dom);
if($divToRemove = $xpath->query('.//div[@class="children"]')->item(0))
$divToRemove->parentNode->removeChild($divToRemove);
$content = $dom->saveHTML();
使用上面的代码,我可以从$content 中删除第一个div。但是如何删除内部文本较短的孩子,例如少于 20 个字符?
编辑
我不知道子元素。它可以是 <div> 或 <p> 或其他。
我想删除父母 <div>
的每个短长度的孩子
是否有任何Xpath 查询来选择节点的长度?
这是我想要的输出:
$content=
'<div id="parent">
<div class="children">
This is a very long content even longer than the Short content
</div>
</div>';
【问题讨论】:
标签: php html-parsing domdocument removechild