XML-Daten leserlich formatiert ausgeben
Eine kleine Erweiterung der Klasse simpleXMLElement um eine Methode, die XML-Dateien formatiert abspeichert.
Seit PHP5 ist das Erstellen und Bearbeiten von XML-Daten zum Kinderspiel geworden. Mit SimpleXML
hat man eine Palette an Werkzeugen zur Hand, um XML-Daten in Form eines Objektes nahezu intuitiv zu bearbeiten. Einziges Manko: mit der Methode asXML() ausgegebene XML-Strings sehen dann so aus, dass alle Tags hintereinander in eine Zeile geschrieben sind.
Gerade in der Entwicklungsphase braucht man die XML-Struktur jedoch gut leserlich vor sich. Ich habe mir dafür die Klasse um eine Methode save() erweitert:
<?php
class myxml extends SimpleXMLElement {
/**
* save formated
*
* @param string $filename
*/
public function save( $file_name ) {
$xml_string = $this->asXML();
# DOM erzeugen
$dom = DOMDocument::loadXML( $xml_string );
# Ausgabe formatieren
$dom->preserveWhiteSpace = FALSE;
$dom->formatOutput = TRUE;
# Und das ganze speichern
if ( $dom->save( $filename ) ) {
return TRUE;
}
else {
return FALSE;
}
}
}Um ein Objekt der Kindklasse
myxmlauch aus den statischen Methoden der Elternklasse zu erzeugen, gibt man dort einfach den Klassennamen als Parameter mit:
$myxml_object = simpleXML_load_file( 'filename.xml', 'myxml' );
# Nach getaner Arbeit abspeichern:
$myxml_object->save( $filename );Kommentare
Es wurden noch keine Kommentarte zu diesem Artikel geschrieben.