我想获得像DOM函数innerHTML那样的DOM元素的内容。 目前我这样做是否有更短的方式没有循环这样做? 如果我使用 - > nodeValue它将执行我需要的操作,但它会删除HTML标记。
基本上我需要让所有dom元素的子元素包含一个命令的标记。
$html= "<div>
<p>One</p>
<p>Two</p>
</div>";
$dom_doc = new DOMDocument();
@$dom_doc->loadHTML($html);
$html_elements = $dom_doc->getElementsByTagName("div");
//vvar_dump($dom_doc->saveHTML($html_elements->item(0)));
//this will return "<div><p>One</p><p>Two</p></div>" and i only need contents of div tag
//vvar_dump($html_elements->item(0)->nodeValue;
//this will return "OneTwo" without <p> tags
$innerHTML = "";
$child_elements = $html_elements->item(0)->childNodes;
foreach($child_elements as $key) {
$innerHTML .= $html_elements->item(0)->childNodes->item($key);
}
vvar_dump($innerHTML);
//returns: <p>One</p><p>Two</p>