PHP bir DOMNode bir DOMDocument oluşturma

2 Cevap php

Ben belli bir kaynaktan gelen bir XML dizesi olsun. Ben bir DOMDocument nesnesi oluşturmak ve (DOMDocument ile :: loadXML ()) içine XML dize yüklenemedi. Ben istiyorum (tabii bir DOMNode) düğümü bulana kadar Sonra, çeşitli yöntemler (örn. DOMXPath) kullanarak XML doc gezinin.

Bu düğüm soyundan bir grup var, ve ben o tüm düğüm (ve onun soyundan) almak ve ondan yeni bir DOMDocument nesnesini oluşturmak istiyorum. Ben bunu nasıl emin değilim; Ben yeni bir DOMDocument oluşturma ve DOMDocument :: ImportNode () kullanarak çalıştı, ancak bu DOMDocument zaten ana belge düğümün bir çocuk olarak ithal düğümü ekler bu durumda bunun bir ana belge düğüm, varsa sadece çalışmak için görünür Hangi ben istiyorum ne değildir - Ben ithal düğüm DOMDocument ana düğüm OLMAK istiyorum.

Belki orada (ben kendi belgesine dönüştürmek istediğiniz orijinal XML kısmını ayıklamak için, yani daha kolay bir yol) bunu yapmak için kolay bir yolu var, ama ben bilmiyorum. Ben rahatsız olmak yeterli SimpleXMLElement kullandım rağmen ben, DOMDocument nispeten yeni.

2 Cevap

Ayrıca yeni bir DOMDocument oluşturmak ve bir kök düğüm eklemek için üzerine appendChild () çağırabilirsiniz:

$new = new DomDocument;
$new->appendChild($new->importNode($node, true));

Bu benim için çalıştı.

Sadece yeni bir DOMDocument oluşturmak ve düğümün XML yüklemek değil mi?

$new = new DOMDocument;
$new->loadXML($node->ownerDocument->saveXML($node));

Ben hemen deneyin mümkün değilim ama bu çalışması gerekir.