使用
$body = $dom->getElementById('content');
输出如下:
<div id=content>
<div>
<p>some text</p>
</div>
</div>
我需要删除<div id=content></div>
部分。
由于我只需要内部部分,所以不包含具有id内容的div
所需结果:
<div>
<p>some text</p>
</div>
我当前的代码:
$url = 'myfile.html';
$file = file_get_contents($url);
$dom = new domDocument;
$dom->loadHTML($file);
//$body = $dom->getElementsByTagName('body')->item(0);
$body = $dom->getElementById('nbscontent');
$stringbody = $dom->saveHTML($body);
echo $stringbody;
答案 0 :(得分:2)
getElementById
返回一个DOMElement
,其属性为childNodes
,该属性为DOMNodeList
。您可以遍历所有子项,然后再获取innerHTML
。
$str = "<div id='test'><p>inside</p></div>";
$dom = new DOMDocument();
$dom->loadHTML($str);
$body = $dom->getElementById('test');
$innerHTML = '';
foreach ($body->childNodes as $child)
{
$innerHTML .= $body->ownerDocument->saveHTML($child);
}
echo $innerHTML; // <p>inside</p>
实时示例