<?php libxml_use_internal_errors(true); $html = ' <html> <body> <div> Message <b>bold</b>, <s>strike</s> </div> <div> <span class="how"> <a href="link" title="text">Link</a>, <b> BOLD </b> </span> </div> </body> </html> '; $dom = new DOMDocument(); $dom->preserveWhiteSpace = false; $dom->strictErrorChecking = false; $dom->recover = true; $dom->loadHTML($html); $xpath = new DOMXPath($dom); $messages = $xpath->query("//div"); foreach($messages as $message) { echo $message->nodeValue; }
Этот код возвращает «Message bold, strike Link, BOLD» без тэгов html …
Я хочу вывести следующий код:
Message <b>bold</b>, <s>strike</s> <span class="how"> <a href="link" title="text">Link</a>, <b> BOLD </b> </span>
Вы можете мне помочь?
Я могу сделать это с помощью SimpleXML очень быстро (если вам удобно переключаться с DOMDocument и DOMXPath, возможно, вы пойдете с моим решением):
$html = ' <html> <body> <div> Message <b>bold</b>, <s>strike</s> </div> <div> <span class="how"> <a href="link" title="text">Link</a>, <b> BOLD </b> </span> </div> </body> </html> '; $xml = simplexml_load_string($html); $arr = $xml->xpath('//div/*'); foreach ($arr as $x) { echo $x->asXML(); }
$dom = new DOMDocument; foreach($messages as $message) { echo $dom->saveHTML($message); }
Использовать saveHTML()