Soweit funktioniert auch alles, nun möchte ich aber aus dem gefundenen node namens $div_char_info ein neues DOMDocument Objekt erstellen, welches nebst der $div_char_info Node auch alle Children mitnimmt (kopiert). Das neue DOMDocument benötige ich um mit DOMXPath einen Query innerhalb dieses abzusetzen.
Nur wie kann ich mithilfe des gefundenen Nodes "$div_char_info" ein neues DOMDocument erstellen?
Nach dem durchlaufen der foreach Schleife die gefundene Node und alle Kinder ausgegeben. Es ist also garantiert das einerseits die richtige Node gefunden wurde, als auch das an dieser ein Haufen an Informationen angehängt sind.
Wenn ich jedoch nun
... $newDOM = new DOMDocument(); $newDOM->importNode( $div_char_info, true ); ...
durchführe, und dann per:
print $newDOM->saveHTML();
das neue DOMDocument versuche auszugeben, ist die Ausgabe leer. Beim Import wird also die angegeben Node, die wie bereits oben erwähnt, definitiv Content besitzt, nicht übertragen.
Ich habe inzwischen die Lösung selbst gefunden, der 'Fehler' lag daran das zwar die Node in das DOMDocument kopiert wurden, jedoch - wenn man mal darüber nachdenkt - logischerweise nicht automatisch im DOMDocument Tree angehängt wird. Deshalb muss man mit 'appendChild' angeben wohin die neue Node samt all ihrer Child's angehängt werden soll.
Hier also die Lösung:
//Neues DOMDocument erstellen $newDOM = new DOMDocument();
//Ein root Element erstellen $newDOM->loadXML("<root></root>");
//Die Node 'div_char_info' in das neue DOMDocument 'newDom' kopieren, //Das Ergebnis ist eine Node 'node' welche sich nun im 'newDom' befindet. $node = $newDOM->importNode( $div_char_info, true );
//Die neue Node 'node' im DOMDocument 'newDOM' an das Root-Element anhängen! $newDOM->documentElement->appendChild($node);
http://de2.php.net/manual/de/domdocument.importnode.php