Ir al contenido principal

Convertir XML a JSON en PHP

Si eres como yo, usted encuentra XML un verdadero dolor para tratar, pero aún así parece existir con varios servicios web. Si está utilizando Android o AngularJS , estos marcos no pueden procesar XML fuera de la caja, pero pueden JSON.
Con la ayuda de un servidor web con PHP, puede transformar fácilmente las desagradables respuestas XML que obtiene en algo más utilizable como JSON.
PHP tiene un método ingenioso llamado simplexml_load_string y lo que hace es que carga una cadena estructurada XML en un objeto fácil de usar. Supongamos que tiene una variable de cadena llamada $ xmlResponse que tiene el siguiente XML correctamente formateado:
Hacer lo siguiente en PHP nos dará un objeto muy agradable para trabajar con:
Ahora para hacer la conversión completa de objeto a JSON, usaré ZendFramework 2. Sin embargo, las manipulaciones del objeto XML se pueden hacer sin un marco especial o herramienta.
Empecemos por crear una matriz de nuestros empleados:
El código anterior creará un objeto personalizado para cada empleado en el XML y los anexará a una matriz. Esto nos dejará con una serie de objetos de los empleados personalizados a nuestro gusto.

Lo siguiente que queremos hacer es agregar la matriz de empleados a un objeto personalizado que contenga el resto de nuestra información comercial:
Como he mencionado anteriormente, uso ZendFramework 2 por lo que estaré convirtiendo nuestro objeto personalizado utilizando los métodos Json incluidos. Para convertir a JSON, haría una llamada como la siguiente:
Si todo salió bien, el resultado JSON de nuestra respuesta XML debería ser algo así:
Si usted tiene su  webservice y  muestrar la respuesta JSON en lugar del XML en bruto, sus clientes van a tener un tiempo mucho más fácil de absorber.

Comentarios

Entradas populares de este blog

Laravel 5Subir archivos con Laravel 5

En esta entrada vamos a ver cómo  subir archivos con  Laravel 5 , de paso repasaremos algunos otros temas, enrutar controladores, crear modelos y definir algunas de sus propiedades, utilizar blade y su sistema de herencia y cómo guardar el registro del archivo en base de datos comprobando el tipo de extensión. Antes de comenzar debemos recordar que para utilizar las clases HTML y FORM en  laravel 5  debemos hacer la instalación con composer, a continuación dejo una entrada donde puedes revisar un poco más en profundidad sobre este tema . Laravel 5: Las clases HTML y FORM Añadir las clases Html y Form en Laravel 5 Simplemente debemos añadir la siguiente línea al archivo composer.json, justamente en la clave require. JavaScript 1 "illuminate/html" : "5.*" Ahora para que las dependencias se instalen ejecuta el siguiente comando situado en tu proyecto. Shell 1 composer update ...

Dictadura ? Venezuela: obligan a los empleados públicos a votar en la Constituyente

El voto en Venezuela no es obligatorio, según señala la Constitución. Sin embargo, el presidente Nicolás Maduro ha obligado a pasar lista de todos los empleados y funcionarios de la administración pública nacional, “sin excusa”, para que vayan a votar en los polémicos comicios de la Asamblea Nacional Constituyente del próximo 30 de julio. El mandatario anunció la obligación de los estatales de participar en la votación durante una asamblea con trabajadores del sector minero y metalúrgico, realizado en la ciudad de Guayana, en el estado Bolívar, y transmitida en directo por la cadena oficial de radio y televisión. “Escúchenme bien. Héctor Rodríguez, jefe del comando de campaña, tomen la nómina de todas las instituciones, empresas y organicémonos desde ya”, exigió Maduro. Propuso que para cumplir esta tarea se configuren “comités constituyente”, que permitan dar seguimiento empresa por empresa. El presidente venezolano hizo una fuerte exhortación a los funcionarios para que vigi...

Miguel Cabrera a la "resistencia" en Venezuela: No están solos , Amenazado de muerte

Aprovechando el descanso que recibió al no estar en el roster para el  Juego de las Estrellas, Miguel Cabrera  utilizó su cuenta de Instagram para mandarles un mensaje a las personas que están protestando en Venezuela desde abril de 2017. ¿Por qué debo tener gente armada en mi país?" “Un saludo a la gente de la resistencia”,  comienza la publicación en la sección de historias. “No están solos; los seguimos apoyando. A nosotros no nos están pagando y los seguimos apoyando”. Aunque siempre recibió recomendaciones de  Andrés Galarraga  para no meterse en temas de política, el inicialista de los  Tigres de Detroit  asegura que el momento actual lo obliga a ignorar ese mensaje. “Tenemos que meternos en eso porque el país lo tienen secuestrado”. También señalando los inconvenientes económicos, sociales y hasta culturales, Cabrera hizo un llamado a los simpatizantes de ambos sectores. “Aquí hay guerra de poder, pero tenemos que llamar a elecciones ...