2011-05-20 122 views
0

不知道如何檢查節點屬性「action」的值是否等於「left」。我的XML如下所示:檢查XML屬性的值

<track timestamp="18/05/2011 13:21:49-0400" id="3" action="track"> 
       <coordinates> test 1</coordinates> 
    </track> 
    <track timestamp="18/05/2011 13:21:49-0400" id="3" action="track"> 
       <coordinates> test 1</coordinates> 
    </track> 
    <track timestamp="18/05/2011 13:21:49-0400" id="3" action="left"> 
       <coordinates> test 1</coordinates> 
    </track> 
    <track timestamp="18/05/2011 13:21:49-0400" id="3" action="track"> 
     <coordinates> test 1</coordinates> 
    </track> 

我想我需要遍歷XML數據和檢查,如果其真正開始我的功能。這是我到目前爲止有:

var myXML:XML; 
var myLoader:URLLoader = new URLLoader(); 
myLoader.load(new URLRequest("get_data.xml")); 
myLoader.addEventListener(Event.COMPLETE, processXML); 

       function processXML(e:Event):void { 

      myXML = new XML(e.target.data); 

          for (var i:int = 0; i<myXML.*.length(); i++){ 
           if (myXML.tracking[i].action == "left") 
            { 
             start_animation(); 
            } 
          }; 
     } 

回答

2

您只需選擇所有具有一定值這樣的節點:

node.(@attribute == "value") 

作爲一個例子,這樣只會輸出,其中side設置節點作爲"left"

var xml:XML = 
<list> 
    <node side="left">hi</node> 
    <node side="left">there</node> 
    <node side="right">marty</node> 
</list>; 

trace(xml.node.(@side == "left")); 

輸出:

<node side="left">hi</node> 
<node side="left">there</node> 

您可以像這樣分配此爲XMLList:

var list:XMLList = xml.node.(@side == "left"); 

然後遍歷像平時那樣:

var i:XML; 
for each(i in list) 
{ 
    trace(i); 
} 

在回答您的評論的問題:

您可以使用length()屬性來產生多少個節點,並將它們的邊設置爲左邊,如下所示:

var xml:XML = 
<list> 
    <node side="left">hi</node> 
    <node side="left">there</node> 
    <node side="right">marty</node> 
</list>; 

var list:XMLList = xml.node.(@side == "left"); 

// check if a node was found 
if(list.length() > 0) 
{ 
    doStuff(); 
} 

function doStuff():void 
{ 
    trace("a node had its side set as left"); 
} 
+0

這太好了!你推薦任何在線資源爲as3/xml? – Denoteone 2011-05-20 03:48:07

+0

我可以做一些像total = count(xml.node。(@ side ==「left」));如果(計數!= 0){做我的功能}(PHP) – Denoteone 2011-05-20 03:50:30

+0

謝謝!這是我之前用過的一個loong:http://www.kirupa.com/developer/flashcs3/using_xml_as3_pg1.htm – Marty 2011-05-20 03:50:40