Bir dize gibi bir düğüm xml içeriği almak nasıl?

1 Cevap php

PHP'nin DOM işlevlerini kullanma, nasıl bir DOM Düğüm içeriğini bir dizeye dönüştürmek?

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

Given foo geçerli bağlamsal düğüm olarak, nasıl alabilirim 'Blah blah <bar baz="1">bah</bar> blah blah' bir dize olarak? Using $node->textContent veya $node->nodeValue sadece metin düğümlerini değil döndürür <bar baz="1"> bit.

Temelde, Javascript innerHTML mülkiyet eşdeğer ...

1 Cevap

Sen <foo> düğüm yeni bir DOMDocument oluşturmak ve XML veya HTML olarak ayrıştırmak yapabilirsiniz:

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)); 
}