2011-06-22 10 views
0

私は奇妙な問題があります。 XMLで占めアレイ上で同じことをやって、それが動作する、「静的な」アレイ上のindexOfをやろうとしたとき、私は常に結果を得るxmlによって設定された配列のindexOf

= -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

あなたはを推進していますあなたの配列にオブジェクトではなく、文字列ではありません。これは、属性に.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

関連する問題