Benutzer-Werkzeuge

Webseiten-Werkzeuge


php:dom

Dies ist eine alte Version des Dokuments!


DOM - PHP-Schnittstelle für den Zugriff auf HTML- und XML-Dokumenten

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 ) );
		}
	}
}

Beispiel für Aufruf der beiden oben aufgeführten Funktionen

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>
php/dom.1428419309.txt.gz · Zuletzt geändert: 2015/12/19 00:00 (Externe Bearbeitung)