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: <?php class myxml extends SimpleXMLElement { /** method save() * @param: string $filename * */ public function save($file_name) { if(!$file_name) { exit('Fehlender Parameter für myxml::save()!'); } $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 myxml
auch aus den statischen Methoden der Elternklasse zu erzeugen, gibt man dort einfach den Klassennamen als Parameter mit:
PHP: <?php $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.