1

アンダースコアが存在するノードを含むXMLドキュメントを解析するにはどうすればよいですか?

<some_xml>
    <child_node>
        <child width_info="" height_info="" />
    </childnode>
</some_xml>

私はこれを試しました:

for each (var item:XML in Environment._XMLData.some_xml.child_node.child){
    trace(child.@width_info);
}

しかし、それはうまくいかないようです。XMLもサードパーティのものであるため、変更できません。どんな助けでも素晴らしいでしょう。前もって感謝します!

4

2 に答える 2

3

問題は、some_xml がルート ノードであるため、それを含める必要がないことです。

これはうまくいくはずです:

for each (var item:XML in Environment._XMLData.child_node.child){
    trace(item.@width_info);
}
于 2010-05-06T15:57:11.023 に答える
0

覚えておくべきことは、.NODEと.ATTRIBUTEは、それぞれ.child( "NODE")と.attribute( "ATTRIBUTE")のショートカットであるということです(XML構造のトラバース(livedocsを除く)による)

したがって、次のようなものが機能すると思います(コードはテストされていませんが、理論は正しいはずです)。

for each (var item:XML in Environment._XMLData.child("child_node").child){
    trace(child.@width_info);
}

属性が定義されていない場合、実行時エラーが発生することに注意してください。これを防ぐには、次のいずれかを実行します。

if(child.hasOwnProperty("width_info"))
    trace(child.@width_info);

または単に属性を使用します

trace(child.attribute("width_info"));
于 2010-05-06T01:17:11.117 に答える