gast: PHP5: Fehler bei importNode

Beitrag lesen

Hi,

Ich habe zwei verschiedene Instanzen von DOMDocument und möchte ein Node (mit Kindern) von dem einen DOMDocument in das andere importieren. Soweit so gut: nun heißt es in der Dokumentation, dass das importierte Node erst mit appendChild oder ähnliches in den DOM-Tree eingebunden werden muss - klingt ja auch logisch. Also habe ich das auch gemacht: mit replaceChild(). Jetzt noch schnell das fertige Ergebnis in der XML-Datei speichern (mit save()). Und nun mit transformToXml() das ganze über ein XSL-Stylesheet laufen lassen, das dann das Ergebnis auf dem Browser ausgibt.

So: die erwartete Ausgabe wäre nun, dass der komplette XML-Tree umgewandelt ausgegeben werden würde. Das tatsächliche Ergebnis allerdings ist, dass genau das Node, das vorher importiert worden ist, nicht in der Ausgabe drin vorkommt (sehr wohl aber im XML-Tree gespeichert ist) - erst, wenn ich die Seite neu lade, dann ist der komplette XML-Tree vorhanden.

Was läuft da falsch? Liegt es an importNode(), oder eher an createDocumentFragment() (siehe unten)?

Hier noch ein bisschen Code ($this steht für das erste DOMDocument):

$doc = new DOMDocument;
$string = "<root>" . $argStrText . "</root>";

$doc->loadXML($string)

$fragment = $doc->createDocumentFragment();
$nodeListSub = $doc->getElementsByTagName("*");

foreach ($nodeListSub as $nodesSub)
{
    $fragment->appendChild($nodesSub);
}

$add = $this->importNode($fragment, TRUE);
$nodes->parentNode->replaceChild($add, $nodes);

Bin um jede Hilfe dankbar. Viele Grüße,
gast

P.S: PHP Version: 5.0.1, Win98SE, Apache 1.3.24