1

假设我有以下 HTML:

<div class="some-class">
     <p> some paragraph</p>
     <h2>a heading</h2>
</div>

我想获取 中<div class='some-class'>的所有内容,包括 HTML。以下仅抓取文本:

$descriptions = $xpath->query("//div[contains(@class, 'some-class')]");
foreach($descriptions as $description)
       print $description->textContent;

获取包含的 HTML 标签的最佳方法是什么?

4

2 回答 2

1

使用这个函数——我从来没有找到任何内置函数,但这很好用:

function getInnerHTML($node)
{
    $innerHTML = "";
    $children = $node->childNodes; 
    foreach ($children as $child) { 
        $tmp_doc = new DOMDocument(); 
        $tmp_doc->appendChild($tmp_doc->importNode($child,true));        
        $innerHTML .= $tmp_doc->saveHTML(); 
    } 
    return $innerHTML;
}
于 2012-12-18T20:02:37.190 回答
0

我相信您正在寻找outerXml- 看看DOMDocument::saveXML。还是我误解了你 - 你只需要<div>元素的 xml 序列化及其属性轴吗?

编辑我的意思是你想要:

<div class="some-class">
     <p> some paragraph</p>
     <h2>a heading</h2>
</div>

要不就

<div class="some-class" />

?

于 2012-12-18T19:11:27.960 回答