XML zu JSON Konvertierung
Zend_Json bietet eine bequeme Methode für das transformieren von
XML formatierten Daten in das JSON Format. Dieses Feature wurde
inspiriert durch einen IBM developerWorks
Artikel.
Zend_Json enthält eine statische Funktion die
Zend_Json::fromXml() heißt. Diese Funktion erzeugt JSON von einer
angegebenen XML Eingabe. Diese Funktion nimmt jeglichen beliebigen
XML String als Eingabe Parameter. Sie nimmt auch einen optionalen
Boolschen Eingabe Parameter um die Konvertierungslogik zu instruieren ob
XML Attribute wärend des Konvertierungsprozesses ignoriert werden sollen
oder nicht. Wenn dieser optionale Eingabeparameter nicht angegeben wurde, besteht das
Standardverhalten darun XML Attribute zu ignorieren. Der Funktionsaufruf
wird wie folgt durchgeführt:
Die Zend_Json::fromXml() Funktion führt die Konvertierung des
XML formatierten String Eingabeparameters durch und gibt eine äquivalente
JSON formatierte String Ausgabe zurück. Im Fall eines XML Eingabeformat
Fehlers oder eines Konvertierungslogik Fehlers wird diese Funktion eine Ausnahme werfen. Die
Konvertierungslogik verwendet rekursive Techniken um den XML Baum zu
durchlaufen. Sie unterstützt Rekursionen die bis zu 25 Levels tief sind. Über diese Tiefe
hinweg wird Sie eine Zend_Json_Exception werfen. Es gibt
verschiedenste XML Dateien mit unterschiedlichem Grad an Komplexität die
im tests Verzeichnis des Zend Frameworks vorhanden sind. Sie können verwendet werden um die
Funktionalität des xml2json Features zu testen.
Das folgende ist ein einfaches Beispiel das beides zeigt, den XML Eingabe
String zu JSON übergeben wird, und den JSON Ausgabe String der als Ergebnis von der
Zend_Json::fromXml() Funktion zurückgegeben wird. Dieses Beispiel
verwendet den optionalen Funktionsparameter um die XML Attribute nicht
wärend der Konvertierung zu ignorieren. Demzufolge kann man sehen das der resultierende JSON
String eine Repräsentation der XML Attribute enthält die im
XML Eingabestring vorhanden sind.
XML Eingabe String der an die
Zend_Json::fromXml() Funktion übergeben wird:
Code Generation in Action
JackHerrington
Manning
PHP Hacks
JackHerrington
O'Reilly
Podcasting Hacks
JackHerrington
O'Reilly
]]>
JSON Ausgabe String der von der Zend_Json::fromXml() Funktion
zurückgegeben wird:
Weitere Details über das xml2json Feature können im originalen Proposal selbst gefunden
werden. Siehe Zend_xml2json proposal.