2016-03-20 4 views
-1

私のXMLファイルをデコードする助けが必要です。それはトレースすべてがXMLで、7 "テスト=" はデータをXMLからトレースされていないAS3デコードXMLファイル

function xmlLoaded(event:Event):void 
    { 
     _structXML = XML(_structLoader.data); 
     trace("Data loaded." + _structXML); 

     var a:XML; 
     for each(a in _structXML.images.cell) 
     { 
      trace("test=" + a); 
     } 
    }  

:。 それは次のようになります。

<?xml version="1.0" encoding="UTF-8"?> 
<design> 
    <images> 
     <cell id="fill" file="cellImages/cellFill"/> 
     <cell id="top" file="cellImages/cellTop"/> 
     <cell id="topLeft" file="cellImages/cellTopLeft"/> 
     <cell id="topRight" file="cellImages/cellTopRight"/> 
     <cell id="bottom" file="cellImages/cellBottom"/> 
     <cell id="bottomLeft" file="cellImages/cellBottomLeft"/> 
     <cell id="bottomRight" file="cellImages/cellBottomRIght"/> 
    </images> 
</design> 

、これは私のコードです

助けてください:)

答えて

1

をそれは、彼らが空のXMLノードだから(コンテンツのないだけの属性)全てのaの値に空の文字列をトレースします。 [email protected]を使用すると、画像のファイルが取得されます。

0

使用この:

trace("test id = " + a.attribute("id")); 
trace("test file = " + a.attribute("file")); 
0

"test=" + aのご使用は文字列にa XMLオブジェクトに変換し、rules of XML toString()あたりれる:

  • XMLオブジェクトに単純内容がある場合は、 toString()は、が取り除かれたXMLオブジェクトのStringコンテンツを返します。開始 タグ、属性es、名前空間宣言、および終了タグが含まれます。 XMLオブジェクトに複合内容がある場合

  • は、toString()開始 タグ、属性、名前空間宣言、および終了タグを含む全体のXMLオブジェクトを表すXMLエンコードされた文字列を返します。

あなた<cell>ノードが「単純な」コンテンツ(子ノード)を持っている、それは出力からXMLの開始タグと終了タグを取り除き、そして<cell>ノードは何も含まれていないので、あなたは空の文字列を取得しているためあなたのtraceステートメントで何も表示されません。

toXMLString()を使用すると、XMLの完全な文字列表現(つまり、ノードのコンテンツが「シンプル」か「コンプレックス」かにかかわらず上に挙げた2番目の動作)を取得できます。

trace("test=", a.toXMLString()); 

それとも可能性があり、出力属性:

trace([email protected], "=", [email protected]); 

(注:traceは複数の引数を取ることができ、あなたが+で文字列連結を使用する必要はありません)

関連する問題