PHP5 - DOM verschachtelte Elemente erstellen

rootssw

Erfahrenes Mitglied
Hallo!

Ich hab' gerade meinen Server auf PHP5 umgestellt und möchte meine Internetseiten auch mit XML programmieren.
Das funktioniert mit PHP5 ja auch relativ gut (im Vergleich zu PHP4). Allerdings bin ich jetzt an ein Problem geraten, dass ich bisher (trotz Suche per Google) nicht lösen konnte.
Ich möchte nämlich nicht - wie sonst üblich - XML-Dokumente parsen, sondern selbst welche erstellen können (die Daten werden aus einer Datenbank abgefragt und dann per PHP zusammen gesetzt). Dazu dient (wie ich hoffentlich richtig erfahren habe ;) ) ja auch DOM .
Nun möchte ich ein Dokument mit folgender Struktur erstellen:

HTML:
<?xml version="1.0" encoding="iso-8859-1"?>
<familie>
    <opa>
        <papa>
            <sohn>
                Text
            </sohn>
    	</papa>
    </opa>
    <oma>
    	<mutter>
            <tochter>
            	Text
            </tochter>
    	</mutter>
    </oma>
</familie>

Allerdings kann ich einfach keine Funktion o. ä. finden, dass es mir ermöglicht, 'verschachtelte' Elemente zu erstellen.
Das dürfte doch eigentlich kein Problem sein - für mich scheint es aber doch eins zu sein... :-( :confused:
 
Na, ein bisschen näher hinsehen und schon löst sich das Problem :rolleyes:.
Hier ein kleines Beispiel, das die obigen Elemente erzeugt (vielleicht hilft es ja jemanden):

PHP:
<?php

//DOM-Dokument erstellen
$dom = new DOMDocument ( '1.0', 'iso-8859-1');


// Elemente erstellen
$familie = $dom->createElement ('familie');

$opa     = $dom->createElement ('opa');
$vater   = $dom->createElement ('vater');
$sohn    = $dom->createElement ('sohn', 'text');

$oma     = $dom->createElement ('oma');
$mutter  = $dom->createElement ('mutter');
$tochter = $dom->createElement ('tochter', 'text');

// Elemente ins Dokument einfügen
$vater->appendChild ($sohn);
$opa->appendChild ($vater);
$familie->appendChild ($opa);

$mutter->appendChild ($tochter);
$oma->appendChild ($mutter);
$familie->appendChild ($oma);

$dom->appendChild ($familie);

// Ausgabe an den Browser
echo $dom->saveXML();
?>
 
Zuletzt bearbeitet:
Zurück