PHP XPath。如何使用html标签返回字符串?

|
<?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粗体,删除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()
    

要回复问题请先登录注册