PHP DomeElement选择不带父标记的子html标记

PHP DomeElement选择不带父标记的子html标记,php,domdocument,Php,Domdocument,我想像JS函数innerHTML一样获取DOM元素的内容。 现在我是这样做的,有没有更简单的方法不用循环? 如果我使用->nodeValue,它将执行我需要的操作,但它会剥离HTML标记 基本上,我需要用一个命令获取dom元素的所有子元素,包括它们的标记 $html= "<div> <p>One</p> <p>Two</p> </div>"; $dom_doc

我想像JS函数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>
$html=”
一个

两个

"; $dom_doc=新的DOMDocument(); @$dom_doc->loadHTML($html); $html_elements=$dom_doc->getElementsByTagName(“div”); //vvar_dump($dom_doc->saveHTML($html_elements->item(0)); //这将返回“One

Two

”,我只需要div标签的内容 //vvar\u dump($html\u元素->项(0)->节点值; //这将返回不带标记的“OneTwo” $innerHTML=“”; $child\u elements=$html\u elements->item(0)->childNodes; foreach($key为子元素){ $innerHTML.=$html\u元素->项(0)->子节点->项($key); } vvaru转储($innerHTML); //返回:One

Two