Dies ist eine alte Version des Dokuments!
Document Object Model (DOM) ist die Definizion einer Schnittstelle für den Zugriff auf HTML- und XML-Dokumente.
Funktion für die Erweiterung eines bestehendem DOM-Objektes um Elemente aus einem Array:
function UpdateNode( $domObj, $nodeObj, $Array ) { if( count( $Array ) > 0 ) { foreach( $Array as $Tag => $TextNode ) // XML aus allen Formulardaten erstellen { $Tag = ( is_numeric( $Tag ) ) ? "id_" . $Tag : $Tag; // num. Array durch Präfix erg. $Entry = $nodeObj->appendChild( $domObj->createElement ( $Tag ) ); $Entry->appendChild( $domObj->createTextNode( $TextNode ) ); } } }
Funktion für die Erweiterung eines Bestehendes DOM-Objekt um einen XML-Knoten:
function InsertNode( $domObj, $Element, $nodeName, $Array ) { $nodeObj = $Element->appendChild( $domObj->createElement( $nodeName ) ); if( count( $Array ) > 0 ) { foreach( $Array as $Tag => $TextNode ) // XML aus allen Formulardaten erstellen { $Tag = ( is_numeric( $Tag ) ) ? "id_" . $Tag : $Tag; // num. Array durch Präfix erg. $Entry = $nodeObj->appendChild( $domObj->createElement( $Tag ) ); $Entry->appendChild( $domObj->createTextNode( $TextNode ) ); } } }
Aufruf:
$DOM = new DOMDocument; $request = $DOM->appendChild( $DOM->createElement( 'request' ) ); UpdateNode( $DOM, $request, $_POST['Stammdaten'] ); InsertNode( $DOM, $request, "Vertragsdaten", $_POST['Vertragsdaten'] );
Ergebnis:
<request> <Strasse>Lindenstraße 3</Strasse> <PLZ>81545</PLZ> <Ort>München</Ort> <Vertragsdaten> <id_0>6APG2</id_0> <id_1>6AT4N</id_1> </Vertragsdaten> </request>