| |
| * Link führt ins Internet |
|
| |
Manuelle Erzeugung von XML-Dokumenten
|
|
Sie haben nun bereits erfahren, wie Sie XML-Dokumente verarbeiten können, sprich parsen. Was nun noch fehlt ist die Erzeugung von XML-Dokumenten. Man unterscheidet hierbei die manuelle und dynamische Erzeugung. Als erste werden wir Ihnen die manuelle Methode vorstellen.
Die manuelle Ausgabe von XML-Daten erfordert meist den Einsatz von mehreren foreach-Schleifen zum Arbeiten der Arrays. Es gilt hierbei einige wichtige Details zu beachten. Als Erstes müssen Sie header() aufrufen, um den korrekten Conten-Type-Header für Ihr Dokument zu setzen. Da Sie XML senden und nicht HTML, sollte dies text/xml sein.
Abhängig von der Einstellung der Konfigurationsoption short_open_tag, kann ausserdem der Versuch, die XML-Deklaration auszugeben, unbeabsichtitgt die PHP-Verarbeitung auslösen. Da das in mit dem kurzen öffnenden PHP-Tag übereinstimmt, müssen Sie, um die Deklaration an den Browser ausgeben zu können, entweder die Option deaktivieren oder die Zeile mit einer PHP-Anweisung ausgeben. In der Lösung wenden wir den zweiten Weg an.
Anschliessend müssen möglicherweise vorkommende Entities in Escape-Sequenzen umgewandelt werden. Beispielsweise muss das & in dem Roman „Du & Ich“ durch & ersetzt werden. Um Ihre Daten entsprechend zu konvertieren, verwenden Sie hierfür die htmlspecialchars()-Funktion.
Beispiel
<?php
header('Content-Type: text/xml');
$autoren = array(
array('name' => 'Matthias Kannengiesser',
'titel' => 'MySQL 4',
'thema' => 'Datenbanken',
'preis' => '39.95'),
array('name' => 'Caroline Kannengiesser',
'titel' => 'Flash & ActionScript',
'thema' => 'Programmierung',
'preis' => '49.95')
);
print '<?xml version="1.0"?>' . "\n";
print "<autoren>\n";
foreach ($autoren as $autor) {
print " <autor>\n";
foreach($autor as $tag => $data) {
print " <$tag>" . htmlspecialchars($data) . "</$tag>\n";
}
print " </autor>\n";
}
print "</autoren>\n";
?>
|
Ausgabe
<?xml version="1.0"?>
<autoren>
<autor>
<name>Matthias Kannengiesser</name>
<titel>MySQL 4</titel>
<thema>Datenbanken</thema>
<preis>39.95</preis>
</autor>
<autor>
<name>Caroline Kannengiesser</name>
<titel>Flash & ActionScript</titel>
<thema>Programmierung</thema>
<preis>49.95</preis>
</autor>
</autoren>
|
|
|
|
|
|
|
|