La mejor manera de analizar XML desconocido desde un servicio web

Estoy trabajando en un proyecto en el que necesitaba analizar la respuesta XML procedente del servicio web. No sé nada sobre la estructura de la respuesta. Recibo elementos XML para recopilar datos, y los datos son relacionales, por lo que los elementos representan columnas en una tabla relacional.

Probé el enfoque WSDL donde puedo analizar el nombre del método y su tipo de respuesta. Basado en eso, puedo analizar con NSXMLParser. El problema fue que no encontré ningún analizador WSDL que hiciera esto por mí.

¡¿Alguna sugerencia?!

Gracias,

Jignesh

preguntado el 09 de marzo de 12 a las 15:03

un solo formato? ¿O dinámico y cambiante todo el tiempo? -

El usuario proporciona la URL del servicio web y los nombres de puma, por lo que tengo que tomar la URL del servicio web, llamarla, obtener una respuesta, analizarla y crear una tabla relacional donde el usuario especifica las columnas (elementos o atributos en el archivo XML).

1 Respuestas

Me gusta usar esta biblioteca OpenSource en GitHub Te permitirá girar el XML cadena en un NSDictionary que puede usar dinámicamente.

respondido 09 mar '12, 17:03

Hola Amit, ¡¡¡Gracias por la respuesta !!! Me gustaría probarlo, pero el problema es que a veces el archivo xml puede ser demasiado grande para caber en la memoria ... Tengo que ver si puede devolver la estructura sin datos ..... - Desarrollador de redes

Si sus archivos son muy grandes, miraría libxml2. Puede manejar archivos muy grandes y tiene un mejor rendimiento que NSXMLParser. No hay muchas otras opciones además de recorrerlo usted mismo. Tal vez crear un NSMutableArray de todas las etiquetas que necesita y cree una estructura como esa. - Amit Shah

El problema principal es determinar la estructura de la respuesta porque, por ejemplo, algunas etiquetas pueden estar presentes en una fila (registro) pero faltar en alguna otra fila, lo que significa que no hay valor para esa etiqueta, por lo que no puedo simplemente seguir colocando valores en las matrices respectivas. Entonces, la única forma en que determino la estructura es usando el tipo de salida en WSDL ... - Desarrollador de redes

¿Qué tal simplemente reconstruir el XML sin los datos usando Arrays? De esa forma seguirá siendo dinámico. Básicamente, solo cargaría toda la estructura en la memoria. - Amit Shah

Hola Amit, Gracias por las respuestas !!! Acabo de extraer el conjunto de elementos en función del nivel de anidación del mismo. Registro los niveles de anidación relativos de los elementos escaneando el archivo xml. Empiezo a buscar valores. En función de cuándo el nivel de anidamiento va más allá de los límites de los niveles de anidación de los elementos, decido cuándo iniciar y detener un conjunto de valores (es decir, una fila). - Desarrollador de redes

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.