Actionscript 3 如何在Flex中解析xml?

Actionscript 3 如何在Flex中解析xml?,actionscript-3,apache-flex,xml-parsing,flex3,Actionscript 3,Apache Flex,Xml Parsing,Flex3,我有以下XML结构: <Order> <Mats> <mat> <item> <imgsrc>img_0</imgsrc> <cid>cid_0</cid> </item> </mat> <mat> <item> <imgsrc>i

我有以下XML结构:

<Order>
  <Mats>
    <mat>
      <item>
        <imgsrc>img_0</imgsrc>
        <cid>cid_0</cid>
      </item>
    </mat>
    <mat>
      <item>
        <imgsrc>img_1</imgsrc>
        <cid>cid_1</cid>
      </item>
    </mat>
  </Mats>
</Order>
在“表达式”选项卡中,matte0.childNodes提供:

评估过程中的错误


这不是做你想做的事:

var mattes_list:XMLList = _xml.elements("Mats");
var matte0:XML = mattes_list[0][0][0] as XML;
mattes_列表列出节点,然后matte0只选择第一个也是唯一一个节点。同时,childNodes不是XML的属性,而是您不使用的遗留对象

你应该熟悉你自己。它更像是一种查询选择器语法

要列出节点并检索第一个节点,可以执行以下操作:

var mattes_list:XMLList = _xml.Mats.mat;
var matte0_cid:XML = mattes_list[0].item.cid[0];

您希望访问哪个节点?目标是获得第0个mat imgsrc和cid,因此我想得到:img_0和cid_0您使用的XML就像以前的as2/as3 XMLDocument类一样。如果XML确实是您想要使用的wat,请使用XMLDocument,或者按照它的使用方式使用XML。将我的答案稍微扩展一下,解释为什么它没有达到您想要的效果。谢谢。我对Flex不太熟悉,只是试图修复一些仍在使用的旧代码。啊,这是有道理的。如果您有很多遗留XML代码,那么使用XMLDocument而不是XML可能会更容易,XML的存在只是因为支持遗留语法。然而,如果您可以升级到e4xxml,您可能会发现使用它要容易得多。
var mattes_list:XMLList = _xml.Mats.mat;
var matte0_cid:XML = mattes_list[0].item.cid[0];