Conversión de XML a JSON
Zend_Json roporciona una método conveniente para
transformar datos en formato XML a formato JSON. Esta
característica fue inspirado en un
artículo de IBM developerWorks.
Zend_Json incluye una función estática llamada
Zend_Json::fromXml(). Esta función generará
JSON desde una determinada entrada XML. Esta función
toma cualquier string XML arbitrario como un
parámetro de entrada. También puede tomar opcionalmente parámetros
booleanos de entrada que instruyan a la lógica de conversión de ignorar
o no los atributos XML durante el proceso de
conversión. Si este parámetro opcional de entrada no está dado, entonces
el comportamiento por defecto es ignorar los atributos
XML. La llamada a esta función se hace como se
muestra a continuación:
Zend_Json::fromXml() función que hace la
conversión del parámetro de entrada formateado como un string
XML y devuelve el string de salida equivalente
formateado a JSON. En caso de cualquier entrada con formato
XML erróneo o un error en la lógica de
conversión, esta función arrojará una excepción. La conversión lógica
también usa técnicas recursivas para recorrer el árbol
XML. Soporta una recursión de hasta 25 niveles de
profundidad. Más allá de esa profundidad, arrojará una
Zend_Json_Exception. Hay varios archivos
XML con diversos grados de complejidad provistas
en el directorio de tests de Zend Framework. Se pueden utilizar para
probar la funcionalidad de la característica xml2json.
El siguiente es un ejemplo simple que muestra tanto el string de
entrada XML pasado a y al string JSON de salida
devuelto como resultado de la función
Zend_Json::fromXml(). Este ejemplo utilizó el
parámetro de la función opcional como para no ignorar los atributos
XML durante la conversión. Por lo tanto, puede
notar que el string resultante JSON incluye una representación de los
atributos XML presentes en el string de entrada
XML.
String de entrada XML pasada a la función
Zend_Json::fromXml():
Code Generation in Action
JackHerrington
Manning
PHP Hacks
JackHerrington
O'Reilly
Podcasting Hacks
JackHerrington
O'Reilly
]]>
String de salida JSON devuelto por la función
Zend_Json::fromXml():
Más detalles sobre esta característica xml2json pueden encontrarse en
la propuesta original. Eche un vistazo a la Zend_xml2json proposal.