Recupero datos XML en Flex a través de HttpService. Tengo resultFormat
propiedad en la instancia de HttpService establecida en HTTPService.RESULT_FORMAT_OBJECT
. El resultado contiene datos similares a este:
<!-- ... -->
<children>
<item><!-- ... --></item>
<item><!-- ... --></item>
<!-- ... -->
<children>
<!-- ... -->
Cuando hay más de uno, obtengo un elemento con nombre de matriz debajo de los elementos secundarios. item
hermano. Si solo hay uno, la conversión no puede distinguirlo de un escalar.
¿Qué necesito cambiar para que Flex convierta todo? item
¿Elementos a una matriz con 0 o más elementos?
¿Qué tendría que hacer para obtener un miembro de la matriz children
, dejando caer el item
envolturas en total?
El XML es generado por Struts en el lado del servidor. Siempre tengo la opción de cambiar la estructura del documento allí, pero ahora mismo estoy interesado en lo que puedo hacer con Flex.
Respuestas
0 para la respuesta № 1los item
objeto debe ser un XMLList
si hay una entrada o varias (Será undefined
si no hay ninguno)
Puedes usar XML
métodos en él si solo hay un elemento, pero eso es solo por conveniencia. Vea el Documentación XMLList.
También recomiendo comentar 5 sobre esto. Entrada de blog por Mike Morearty (versión en caché ya que el sitio parece ser inaccesible).
-1 para la respuesta № 2
Prueba esto:
try {
for (var i:int = 0; /* loop forever till error is thrown */; i++) {
var j:String = String( children.item[ i ].SomeOtherAttribute ); // if its a string
}
} catch (re:RangeError) {
}