如何使用actionscript从xml树中提取值

时间:2012-07-23 09:28:31

标签: actionscript

我有一个xml树,如下所示

<Response>
<Terminal>
<Name>m1</Name>
<Value><Array1><DBL><Val>-0.143077</Val></DBL></Array1></Value>
</Terminal>
<Terminal>
<Name>m3</Name>
<Value><Array3><DBL><Val>-0.876611</Val></DBL></Array3></Value>
</Terminal>
<Terminal>
<Name>m2</Name>
<Value><Array2><DBL><Val>-0.459437</Val></DBL></Array2></Value>
</Terminal>
</Response>

我必须使用动作脚本

提取m1,m2,m3值

任何人都可以帮我写这段代码。

以下代码是否适用于此

for (var i=0; i<xml.Terminal.length(); i++) {

     if (xml.Terminal.Name.text()=="m1") {

                       voltage=xml.Terminal.Value.Array1.DBL.Val.text()
                              }
     else if (xml.Terminal[i].Name.text()=="m2") {

                      current=xml.Terminal.Value.Array2.DBL.Val.text();

                              }
     else if (xml.Terminal[i].Name.text()=="m3") {

                       temperature=xml.Terminal.Value.Array3.DBL.Val.text();

                            }
        }

        Menu_Content1.volt_val.text = voltage;
    Menu_Content1.curr_val.text = current;
    Menu_Content1.temp_val.text = temperature;
)

volt_val.text等用于在flash中添加文本显示。

2 个答案:

答案 0 :(得分:2)

要解析XML中的常见格式化标签,您必须首先将它们放入父案例中,然后像这样创建XML

<Response>
<**PARENT_TAG**>
<Terminal>
<Name>m1</Name>
<Value><Array1><DBL><Val>-0.143077</Val></DBL></Array1></Value>
</Terminal>
<Terminal>
<Name>m3</Name>
<Value><Array3><DBL><Val>-0.876611</Val></DBL></Array3></Value>
</Terminal>
<Terminal>
<Name>m2</Name>
<Value><Array2><DBL><Val>-0.459437</Val></DBL></Array2></Value>
</Terminal>
</**PARENT_TAG**>
</Response>

之后在actionscript中解析XML非常容易,你只需要创建一个XML对象,而不是使用DOM格式来获取特定标签的值作为一个例子

var result:XML = new XML(event.target.data);

for(var i:int=0; i<result.PARENT_TAG.length; i++)
{
   trace(result.PARENT_TAG.Terminal[i].Name);

}

答案 1 :(得分:1)

是的,你的想法是导致正确的移动。但你应该首先在对象中加载xml文件。 您可以在项目中使用herehere之类的XML。