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> | + | |