3
$html_string = '<div class="quote" post_id="57" 
style="border:1px solid #000;padding:15px;margin:15px;" 
user_id="1" user_name="david_cameron"><strong><span 
style="font-size:200%;">My Name is Rashid Farooq</span></strong></div>';

親Divを削除して、次の出力のみを取得したい

<strong><span style="font-size:200%;">My Name is David Cameron</span></strong>

私が試してみました

$dom = new DOMDocument;
$dom->loadHTML($html_string);
$divs = $dom->getElementsByTagName('div');
$innerHTML_contents = $divs->item(0)->textContent
echo $innerHTML_contents

しかし、それは私に唯一の「私の名前はデビッド・キャメロンです」を与え、すべてのタグを取り除きます。親divのみを削除し、div内の他のすべてのhtmlコンテンツを取得するにはどうすればよいですか?

4

1 に答える 1

3

この機能を使ってみてください

function DOMinnerHTML($element) 
{ 
   $innerHTML = ""; 
   $children = $element->childNodes; 
   foreach ($children as $child) 
   { 
      $tmp_dom = new DOMDocument(); 
      $tmp_dom->appendChild($tmp_dom->importNode($child, true)); 
      $innerHTML.=trim($tmp_dom->saveHTML()); 
   } 
   return $innerHTML; 
}

お気に入り

$dom = new DOMDocument;
$dom->loadHTML($html_string);
$divs = $dom->getElementsByTagName('div');
$innerHTML_contents = DOMinnerHTML($divs->item(0));
echo $innerHTML_contents

出力

 <strong><span style="font-size:200%;">My Name is Rashid Farooq</span></strong>
于 2013-03-27T06:14:45.040 に答える