PHP DomElement选择没有父标记的子html标记

时间:2016-03-27 21:30:12

标签: php domdocument

我想获得像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>

0 个答案:

没有答案