如何在没有循环的情况下将简单的XMLList转换为字符串数组?

Eri*_*air 12 xml apache-flex arrays actionscript xmllist

如何在不使用循环的情况下将以下XMLList转换为字符串数组?

<labels>
    <label>All</label>
    <label>your</label>
    <label>base</label>
    <label>are</label>
    <label>belong</label>
    <label>to</label>
    <label>us.</label>
</labels>
Run Code Online (Sandbox Code Playgroud)

我想要这个结果:

["All","your","base","are","belong","to","us."]
Run Code Online (Sandbox Code Playgroud)

现在,我正在做以下事情:

var labelsArray:Array /* of String */ = [];

for each (var labelText:String in labels.label)
{
    labelsArray.push(labelText);
}
Run Code Online (Sandbox Code Playgroud)

我想知道在ActionScript 3.0中是否有更简单的方法可以做到这一点

小智 14

这很好但是使用XMLList的一些奇怪的语法.如果需要,最后一个语句可以放在一行上.

    var labels:XML = <labels>
                    <label>All</label>
                    <label>your</label>
                    <label>base</label>
                    <label>are</label>
                    <label>belong</label>
                    <label>to</label>
                    <label>us.</label>
                </labels>;

var labelsArray:Array /* of String */ = [];

labels.label.
(
              labelsArray.push(toString())
);  
Run Code Online (Sandbox Code Playgroud)

可以使用attribute()调用替换toString()调用以拉出属性.


dir*_*tly 1

forAS 中的循环速度非常快。你为什么需要那个?但你可以尝试一下:

private function toArray():void {
    var xml:XML = <labels>
               <label>all</label>
               <label>your</label>
              </labels>;

    var array:* = xml.label.text().toXMLString().split("\n") ;
    trace(array as Array);
}
Run Code Online (Sandbox Code Playgroud)

  • 在新线路上拆分?对我来说似乎是个坏主意。如果标签中有换行符怎么办? (2认同)