Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Geleitwort
Vorwort
1 PEAR – Einführung
2 Authentication
3 Caching
4 Date and Time
5 File Formats
6 HTTP
7 Internationalization
8 Mail
9 Networking
10 PHP
11 Text
12 Web Services
13 Benchmarking
14 Configuration
15 Database
16 File System
17 HTML
18 Images
19 Logging
20 Math
21 Numbers
22 Tools and Utilities
23 XML
24 Selbst Pakete erstellen
25 PECL
Index
Ihre Meinung?

Spacer
 <<   zurück
PHP PEAR von Carsten Möhrke
Anwendung und Entwicklung – Erweiterungen für PHP schreiben
Buch: PHP PEAR

PHP PEAR
798 S., 39,90 Euro
Rheinwerk Computing
ISBN 3-89842-580-0
gp 25 PECL
  gp 25.1 Allgemeines
  gp 25.2 Installation
  gp 25.3 crack
  gp 25.4 apd
  gp 25.5 bcompiler
  gp 25.6 perl
  gp 25.7 Xdebug
  gp 25.8 APC
  gp 25.9 IDN
  gp 25.10 blenc
  gp 25.11 xmlreader
  gp 25.12 xmlwriter
  gp 25.13 id3


Rheinwerk Computing

25.12 xmlwriter  toptop


Version: 0.2 Lizenz: PHP-Lizenz 3.0

Der xmlwriter ist ein Paket, mit dem Sie sehr einfach und schnell XML-Dokumente erstellen können. Ähnlich wie der xmlreader verzichtet das Paket auf überflüssige Funktionalitäten und ist bereits für PHP 5 geschrieben. Ein wichtiger Unterschied zwischen den beiden Paketen ist allerdings, dass xmlwriter nicht objektorientiert, sondern prozedural arbeitet.

Um ein neues Dokument zu erstellen, initialisieren Sie den xmlwriter erst mit der Funktion xmlwriter_open_memory(). Die Funktion initialisiert einen Speicherbereich und liefert eine Referenz darauf zurück, die Sie später an die anderen Funktionen übergeben müssen.

Die Funktion xmlwriter_start_document() bekommt die Referenz, die xmlwriter_open_memory() zurückgeliefert hat, als ersten Parameter übergeben und fügt die XML-Deklaration <?xml version="1.0" ?> in das Dokument ein. Optional können Sie der Methode als zweiten Parameter noch eine Versionsnummer übergeben, die dann an Stelle der 1.0 genutzt wird.

Nachdem Sie diese Funktion aufgerufen haben, können Sie die XML-Elemente einfügen. Im einfachsten Fall nutzen Sie die Funktion xmlwriter_write_element(). Diese bekommt nach der Speicherreferenz den Namen des Tags sowie den eigentlichen Inhalt des Elements übergeben.

$mem = xmlwriter_open_memory(); 
if (false == $mem) 
{ 
   die ("Konnte keinen Speicher reservieren"); 
} 
xmlwriter_start_document($mem,"1.1"); 
xmlwriter_write_element($mem,"daten","Hallo Welt ;-)"); 
xmlwriter_end_document($mem); 
$xml_data=xmlwriter_output_memory($mem); 
file_put_contents('daten.xml',$xml_data);

Listing 25.15 Schreiben von Daten mit dem xmlwriter

Nachdem die Daten geschrieben worden sind, rufen Sie die Funktion xmlwriter_end_document() zum Finalisieren des Vorgangs und die Funktion xmlwriter_output_memory() auf, die Ihnen die XML-Daten als String zurückgibt. Diese können Sie dann auf dem Bildschirm ausgeben, in einer Datei speichern oder anderweitig nutzen. Listing 25.15 erzeugt diese Datei:

<?xml version="1.1"?> 
<daten>Hallo Welt ;-)</daten>

xmlwriter_write_element() erzeugt ein Element, das einen Wert enthält. Damit ist es also nicht möglich, Elemente ineinander zu verschachteln. Um ein Element zu öffnen, das erst später geschlossen wird, nutzen Sie die Funktion xmlwriter_start_element() und übergeben ihr die Speicherreferenz und danach den Namen des Elements. Um das Tag wieder zu schließen, ist die Funktion xmlwriter_end_element() vorgesehen. Sie bekommt nur die Referenz übergeben. Sollten mehrere Tags geöffnet sein, so schließt die Funktion immer das Tag, das zuletzt geöffnet wurde. Sollten Sie vergessen, ein Element zu schließen, so erledigt das Paket das selbstständig. Mit den folgenden Zeilen würden die Elemente vorname und nachname in das Tag person verschachtelt:

xmlwriter_start_element($mem,"person"); 
xmlwriter_write_element($mem,"vorname","Jake"); 
xmlwriter_write_element($mem,"nachname","Ganymede"); 
xmlwriter_end_element($mem);

Haben Sie ein Element auf diesem Weg geöffnet, können Sie jederzeit einen Text oder eine CDATA-Section hinzufügen. xmlwriter_text() gibt einen Text direkt aus. Um eine CDATA-Section zu erzeugen, gibt es zwei Möglichkeiten. Zum Ersten können Sie die Daten direkt ausgeben, indem Sie die Funktion xmlwriter_write_cdata() nutzen. Diese bekommt die schon bekannte Speicher-Ressource als ersten Parameter übergeben und als zweiten die Daten, die ausgegeben werden sollen. Die zweite Variante ist, die CDATA-Section mit xmlwriter_start_cdata() zu öffnen und mit xmlwriter_end_cdata() wieder zu schließen. Dazwischen können Sie die eigentlichen Daten dann mit der Funktion xmlwriter_text() ausgeben.

Einem Tag ein Attribut hinzuzufügen stellt kein Problem dar. Die Methode xmlwriter_write_attribute() bekommt nach der Speicher-Ressource den Namen und den Wert des Attributs übergeben. Wenn Sie nach einem xmlwriter_start_element() die Zeile

xmlwriter_write_attribute($mem,"attr","wert");

aufrufen, wird attr="wert" mit in das öffnende Tag eingefügt.

Mithilfe von xmlwriter_write_comment() können Sie einen Kommentar ausgeben, der der Funktion als zweiter Parameter übergeben wird.

Die Klasse sieht auch Möglichkeiten vor, DTDs, Processing Instructions und Name-Spaces zu nutzen. Allerdings funktionieren diese zurzeit noch nicht perfekt, so dass ich nicht darauf eingehe. Die Funktionsweise ist jedoch sehr stark an die erläuterten Funktionen angelehnt.

 <<   zurück
     
  Zum Katalog
Zum Katalog: PHP PEAR
PHP PEAR
Jetzt bestellen!
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: PHP 5.6 und MySQL 5.7






 PHP 5.6 und
 MySQL 5.7


Zum Katalog: Einstieg in PHP 5.6 und MySQL 5.6






 Einstieg in PHP 5.6
 und MySQL 5.6


Zum Katalog: Responsive Webdesign






 Responsive Webdesign


Zum Katalog: Moderne Websites entwickeln






 Moderne Websites
 entwickeln


Zum Katalog: MySQL 5.6






 MySQL 5.6


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo








Copyright © Rheinwerk Verlag GmbH 2007
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Rheinwerk Computing]

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de