2009-06-16 67 views
3

使用PHP的DOM函数,如何将DOM节点的内容转换为字符串?如何获取节点的xml内容作为字符串?

<foo> 
    Blah blah <bar baz="1">bah</bar> blah blah 
</foo> 

鉴于foo作为当前上下文节点,你怎么'Blah blah <bar baz="1">bah</bar> blah blah'作为一个字符串?使用$node->textContent$node->nodeValue只是返回文本节点,而不是<bar baz="1">位。

基本上,JavaScript的innerHTML财产相当于...

回答

5

您可以创建一个从<foo>节点的新的DOMDocument并解析它作为XML或HTML:

function getInnerHTML($node) { 
    $tmpDoc = new DOMDocument('1.0'); 
    $block = $tmpDoc->importNode($node->cloneNode(true),true); 
    $tmpDoc->appendChild($block); 
    $outer = $tmpDoc->saveHTML(); 
    //this will remove the outer tags 
    return substr($outer,strpos($outer,'>')+1,-(strlen($node->nodeName)+4)); 
} 
+0

打我给它以秒为单位。我已经发布了SimpleXML方式,尽管这很简单。 – Tomalak 2009-06-16 07:18:48

相关问题