如何让Flex从XML数据创建一个元素数组?
我通过HttpService在Flex中检索XML数据。我将HttpService实例上的如何让Flex从XML数据创建一个元素数组?,xml,apache-flex,actionscript-3,Xml,Apache Flex,Actionscript 3,我通过HttpService在Flex中检索XML数据。我将HttpService实例上的resultFormat属性设置为HttpService.RESULT\u FORMAT\u OBJECT。结果包含与此类似的数据: <!-- ... --> <children> <item><!-- ... --></item> <item><!-- ... --></item> <!--
resultFormat
属性设置为HttpService.RESULT\u FORMAT\u OBJECT
。结果包含与此类似的数据:
<!-- ... -->
<children>
<item><!-- ... --></item>
<item><!-- ... --></item>
<!-- ... -->
<children>
<!-- ... -->
当有多个item
同级项时,我会在元素子项下获得一个名为item的数组。如果只有一个,则转换无法将其与标量区分开来
要让Flex将所有item
元素转换为包含0个或更多元素的数组,我需要做哪些更改
要获得数组成员子对象
,完全删除项
包装,我需要做什么
XML由服务器端的Struts生成。我总是可以选择在那里更改文档的结构,但现在我感兴趣的是如何使用Flex。无论有一个条目还是多个条目,
项
对象都应该是一个XMLList
。(如果没有,它将是未定义的。)
如果只有一个元素,可以对其使用XML
方法,但这只是为了方便。看
我还推荐Mike Morearty对此发表评论5(缓存版本,因为网站似乎无法访问)。尝试以下方法:
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) {
}
我不明白。那代码应该做什么?此外,请允许我对似乎有点滥用例外的做法表示不满。(如果我可以做item[I],那么肯定有item.length用于循环条件,不是吗?)我在构建原型时遇到了这个问题。长度属性不存在。几分钟后,我想到了这个解决方案,效果很好。我从来没有说过“这是一个完美的解决方案”,只是“试试这个”。我需要尽快解决这个问题。我不能这么做,先问一个问题,然后等待回答。因此,我使用了对我有用的东西。如果原型可以工作&人们喜欢它,那么我可以考虑让它做好生产准备,然后我可以用更好的东西来替换这段代码。在那之前,我认为没有必要担心纯度。这个链接很好。那么,最基本的方法就是使用e4x结果,对吗?