使用循环从XML获取节点的值

使用循环从XML获取节点的值,xml,actionscript-3,flash-cs5,Xml,Actionscript 3,Flash Cs5,尝试循环遍历我的XML数据并分配给文本字段。没有得到一个具体的错误,但我很确定这与我引用数据并将其分配给.text框的方式有关。我在获取xml的长度方面也有问题,因此我知道循环多少次。请帮忙。谢谢 首先是我的XML摘要: <Worksheet> <Row> <Data>Last Name</Data> <Data>First Name</Data> <Data>Ext.</Da

尝试循环遍历我的XML数据并分配给文本字段。没有得到一个具体的错误,但我很确定这与我引用数据并将其分配给.text框的方式有关。我在获取xml的长度方面也有问题,因此我知道循环多少次。请帮忙。谢谢

首先是我的XML摘要:

<Worksheet>
   <Row>
    <Data>Last Name</Data>
    <Data>First Name</Data>
    <Data>Ext.</Data>
   </Row>
   <Row>
    <Data>Smith</Data>
    <Data>Liz</Data>
    <Data>103</Data>
   </Row>
   <Row >
    <Data>Johns</Data>
    <Data>Jason</Data>
    <Data>116</Data>
   </Row>
   <Row>
    <Data>Potts</Data>
    <Data>Cheryl</Data>
    <Data>131</Data>
   </Row>
</Worksheet>

给你。在节点上使用
.text()
获取其值

var loader:URLLoader = new URLLoader(new URLRequest("test.xml"));
loader.addEventListener(Event.COMPLETE, loaded, false, 0, true);

function loaded(evt:Event):void
{
    var xml:XML = new XML(evt.currentTarget.data);
    for(var i:int=0;i<xml.children().length();i++)
    {
        var _row = xml.children()[i];
        for(var j:int=0;j<_row.children().length();j++)
        {
            var _data = _row.children()[j];
            trace(_data.text());
        }
    }
}
var-loader:URLLoader=newurlloader(newurlrequest(“test.xml”);
loader.addEventListener(Event.COMPLETE、loaded、false、0、true);
已加载函数(evt:事件):无效
{
var xml:xml=新的xml(evt.currentTarget.data);
对于(var i:int=0;i使用:

但你也可以使用

myXML..Row.length();

如果您不关心它在xml中的嵌套深度。

首先,在引用xml元素时跳过根节点。因此,不要使用myXML.Worksheet.Row[i],而是使用myXML.Row[i]。其次(请记住前面的注释),您正在对行进行迭代,因此需要myXML.Row.length()而不是myXML.Worksheet.length().

我知道我在告诉循环获取值。谢谢!我现在就测试它。
var loader:URLLoader = new URLLoader(new URLRequest("test.xml"));
loader.addEventListener(Event.COMPLETE, loaded, false, 0, true);

function loaded(evt:Event):void
{
    var xml:XML = new XML(evt.currentTarget.data);
    for(var i:int=0;i<xml.children().length();i++)
    {
        var _row = xml.children()[i];
        for(var j:int=0;j<_row.children().length();j++)
        {
            var _data = _row.children()[j];
            trace(_data.text());
        }
    }
}
for(var i : int = 0; i < myXML.Worksheet.Row.length(); i++){
... = myXML.Worksheet.Row[i].Data[0];
}
myXML.Row.length();
myXML..Row.length();