使用变量获取XML属性

时间:2011-10-21 23:25:20

标签: xml flex

我希望从XMLList中提取属性并将其分配给字符串。这是XML的片段

<node>
   <sport  GAME="Squash" TIME1="2" TIME2="3" TIME3="8"/>
   <sport  GAME="Table Tennis" TIME1="4" TIME2="6" TIME3="7"/>
</node>

我有两个变量。一个变量将包含游戏类型,Squash或乒乓球。另一个将包含以下字符串之一“TIME1”,“TIME2”或“TIME3”。变量称为游戏时间。我已经尝试了下面的代码的许多变化来获得所需的属性,但没有喜悦。所以任何帮助将不胜感激。

var result:String = node.sport.(@GAME == game).(attribute(time));

2 个答案:

答案 0 :(得分:1)

你们大部分都在那里,这里是经过测试和运作的代码。

var myXML:XML = <node>
                <sport GAME="Squash" TIME1="2" TIME2="3" TIME3="8"/>
                <sport GAME="Table Tennis" TIME1="4" TIME2="6" TIME3="7"/>
             </node>;

        public function init():void {
            var game:String = "Table Tennis";
            var time:String = "TIME2";
            var result:String = myXML.sport.(@GAME==game).attribute(time).toString();

            trace("Result: "+result);
        }

答案 1 :(得分:0)

不完全确定您要完成的任务,但我认为您正在尝试查找指定时间属性的值?

不要在属性(时间)周围使用括号;

package
{
    import flash.display.Sprite;

    public class XmlAttribute extends Sprite
    {
        private var xml:XML =   <node>
                                   <sport  GAME="Squash" TIME1="2" TIME2="3" TIME3="8"/>
                                   <sport  GAME="Table Tennis" TIME1="4" TIME2="6" TIME3="7"/>
                                </node>;

        public function XmlAttribute()
        {
            super();

            var game:String = "Squash";
            var time:String = "TIME1";

            var result:String = xml.sport.(@GAME == game).attribute(time);
            trace(result);
        }

    }
}

输出为:2

使用“TIME1”的游戏“壁球”是:2。