我如何在 Flex 中解析我的 xml?
How can I parse my xml in Flex?
我有以下 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>
在 Flex 中,我试图获取第一个 imgsrc 和第一个 cid。这是我目前所拥有的:
public function globals_get_default_matte():void
{
var defaults_matte_loader:XMLLoader = new XMLLoader();
defaults_matte_loader.url = Globals.defaultMatteXMLURL;
defaults_matte_loader.loadXML();
defaults_matte_loader.addEventListener("dataWritten",globals_get_default_matte_result_handler);
}
public function globals_get_default_matte_result_handler(e:Event):void
{
var _xml:XML = new XML(e.currentTarget.data);
if (_xml)
{
var mattes_list:XMLList = _xml.elements("Mats");
var matte0:XML = mattes_list[0][0][0] as XML;
trace(mattes_list);
trace(matte0);
trace(matte0.childNodes);
}
}
在“表达式”选项卡中,matte0.childNodes
给出:
errors during evaluation
这不是你想要的:
var mattes_list:XMLList = _xml.elements("Mats");
var matte0:XML = mattes_list[0][0][0] as XML;
mattes_list
列出 <Mats>
节点,然后 matte0
只做 select 第一个(也是唯一的)<Mats>
节点。同时,childNodes
不是 XML
的 属性,而是您未使用的遗留 XMLNode
对象。
您应该熟悉 e4x in AS3。它更像是一个查询select或语法。
要列出 <mat>
个节点并检索第一个 <cid>
个节点,您可以这样做:
var mattes_list:XMLList = _xml.Mats.mat;
var matte0_cid:XML = mattes_list[0].item.cid[0];
我有以下 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>
在 Flex 中,我试图获取第一个 imgsrc 和第一个 cid。这是我目前所拥有的:
public function globals_get_default_matte():void
{
var defaults_matte_loader:XMLLoader = new XMLLoader();
defaults_matte_loader.url = Globals.defaultMatteXMLURL;
defaults_matte_loader.loadXML();
defaults_matte_loader.addEventListener("dataWritten",globals_get_default_matte_result_handler);
}
public function globals_get_default_matte_result_handler(e:Event):void
{
var _xml:XML = new XML(e.currentTarget.data);
if (_xml)
{
var mattes_list:XMLList = _xml.elements("Mats");
var matte0:XML = mattes_list[0][0][0] as XML;
trace(mattes_list);
trace(matte0);
trace(matte0.childNodes);
}
}
在“表达式”选项卡中,matte0.childNodes
给出:
errors during evaluation
这不是你想要的:
var mattes_list:XMLList = _xml.elements("Mats");
var matte0:XML = mattes_list[0][0][0] as XML;
mattes_list
列出 <Mats>
节点,然后 matte0
只做 select 第一个(也是唯一的)<Mats>
节点。同时,childNodes
不是 XML
的 属性,而是您未使用的遗留 XMLNode
对象。
您应该熟悉 e4x in AS3。它更像是一个查询select或语法。
要列出 <mat>
个节点并检索第一个 <cid>
个节点,您可以这样做:
var mattes_list:XMLList = _xml.Mats.mat;
var matte0_cid:XML = mattes_list[0].item.cid[0];