2009-06-16 109 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

相關問題