Pobieram dane XML w Flexie za pomocą HttpService. Mam resultFormat
właściwość w instancji HttpService ustawiona na HTTPService.RESULT_FORMAT_OBJECT
. Wynik zawiera dane podobne do tych:
<!-- ... -->
<children>
<item><!-- ... --></item>
<item><!-- ... --></item>
<!-- ... -->
<children>
<!-- ... -->
Dostaję tablicę o nazwie item pod elementem children, gdy jest więcej niż jeden item
rodzeństwo. Jeśli jest tylko jeden, konwersja nie może go odróżnić od skalarnego.
Co muszę zmienić, aby Flex przekonwertował wszystko item
elementy do tablicy z 0 lub więcej elementów?
Co powinienem zrobić, aby uzyskać członka tablicy children
, upuszczając item
opakowania w ogóle?
XML jest generowany przez Struts po stronie serwera. Zawsze mam możliwość zmiany struktury dokumentu tam, ale teraz jestem zainteresowany tym, co mogę zrobić z Flex.
Odpowiedzi:
0 dla odpowiedzi № 1The item
Obiekt powinien być XMLList
czy jest jeden wpis lub kilka. (To będzie undefined
jeśli ich nie ma.)
Możesz użyć XML
metody na nim, jeśli jest tylko jeden element, ale to jest dla wygody Dokumentacja XMLList.
Polecam również komentarz 5 na ten temat wpis na blogu Mike Morearty (wersja z pamięci podręcznej, ponieważ strona wydaje się być niedostępna).
-1 dla odpowiedzi № 2
Spróbuj tego:
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) {
}