2011-06-22 133 views
0

我有一个奇怪的问题。indexOf由xml填充阵列

当试图做的indexOf在“静态”数组,它的工作原理,做填充了XML的阵列上同样的事情,我总是得到的结果= -1

静态的方式

var myarray:Array = new Array("Pub Pepsi","Shadow E-Bike","Icon Air Craft","Test","La page 4","La page 5","La page 6","La page 7"); 
var myresult:* = myarray.indexOf("Icon Air Craft"); 
trace(myresult); 
// I get 2 as result so it works 

动态的方式(从XML)

var Monthpath:String = "juin"; 
var XMLpathUrl:String = "http://www.omagazine.fr/editions/2011/" + Monthpath + "/obook_content.xml.php"; 
var xml:XML; 
var xmlLoader:URLLoader = new URLLoader(); 
var myarray:Array = new Array(); 

xmlLoader.addEventListener(Event.COMPLETE, xmlLoaded); 

function xmlLoaded(event:Event):void 
{ 
    xmlLoader.removeEventListener(Event.COMPLETE, xmlLoaded); 
    xmlLoader.removeEventListener(IOErrorEvent.IO_ERROR, xmlError); 

    xml = new XML(event.target.data); 

    for (var i in xml.pages.page) 
    { 
     myarray.push(xml.pages.page[i][email protected]); 
    } 

    var myresult:* = myarray.indexOf("Icon Air Craft"); 
    trace(myresult); 
    //------------------------------------- 
    // I get -1 as result!!!! Why???? 
    //------------------------------------- 
} 

xmlLoader.addEventListener(IOErrorEvent.IO_ERROR, xmlError); 

function xmlError(event:IOError):void 
{ 
    trace("Error"); 
} 
xmlLoader.load(new URLRequest(XMLpathUrl)); 
+0

您的XML是否有任何名称空间?也许尝试:xml。* :: pages。* :: page [i]。@ ga – Jim

+0

请从源代码示例中移动您的问题,并将其添加为常规文本,因此更明显的是您要完成的任务。 –

回答

3

您正在推动一个XML对象到你的数组,而不是一个字符串。如果您在属性上使用.toString(),这应该可以工作。

for (var i in xml.pages.page) 
{ 
    myarray.push(xml.pages.page[i][email protected]()); 
} 

var myresult:* = myarray.indexOf("Icon Air Craft"); 
trace(myresult); 
+0

Wonderfull非常感谢! – user367864