Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
php:dom [2015/04/07 13:23] webproducer angelegt |
php:dom [2015/12/19 00:00] (aktuell) |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ===== DOM - PHP-Schnittstelle für den Zugriff auf HTML- und XML-Dokumenten ===== | + | ===== DOM - PHP-Schnittstelle für den Zugriff auf HTML- und XML-Dokumente ===== |
- | Document Object Model (DOM) ist die Definizion einer Schnittstelle für den Zugriff auf HTML- und XML-Dokumente. | + | Document Object Model (DOM) ist die Definition 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:** | + | * [[php:dom_html|HTML-Tags mit DOM erstellen]] |
- | + | * [[php:dom_xml|XML-Dokument mit DOM erstellen]] | |
- | <code php> | + | |
- | function UpdateNode( $domObj, $nodeObj, $Array ) | + | |
- | { | + | |
- | if( count( $Array ) > 0 ) | + | |
- | { | + | |
- | foreach( $Array as $Tag => $TextNode ) // XML aus allen Formulardaten erstellen | + | |
- | { | + | |
- | $Entry = $nodeObj->appendChild( $domObj->createElement ( $Tag ) ); | + | |
- | $Entry->appendChild( $domObj->createTextNode( $TextNode ) ); | + | |
- | } | + | |
- | } | + | |
- | } | + | |
- | </code> | + | |
- | + | ||
- | **Funktion für die Erweiterung eines Bestehendes DOM-Objekt um einen XML-Knoten:** | + | |
- | + | ||
- | <code php> | + | |
- | 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 | + | |
- | { | + | |
- | $Entry = $nodeObj->appendChild( $domObj->createElement( $Tag ) ); | + | |
- | $Entry->appendChild( $domObj->createTextNode( $TextNode ) ); | + | |
- | } | + | |
- | } | + | |
- | } | + | |
- | </code> | + | |
- | + | ||
- | ---- | + | |
- | + | ||
- | ==== Beispiel für Aufruf der beiden oben aufgeführten Funktionen ==== | + | |
- | + | ||
- | **Aufruf:** | + | |
- | + | ||
- | <code php> | + | |
- | $DOM = new DOMDocument; | + | |
- | $request = $DOM->appendChild( $DOM->createElement( 'request' ) ); | + | |
- | UpdateNode( $DOM, $request, $_POST['Stammdaten'] ); | + | |
- | InsertNode( $DOM, $request, "Vertragsdaten", $_POST['Vertragsdaten'] ); | + | |
- | </code> | + | |
- | + | ||
- | **Ergebnis:** | + | |
- | + | ||
- | <code XML> | + | |
- | <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> | + | |
- | + | ||
- | </code> | + |