0

Flash と Action Script 3.0 を使用して xml ファイルを扱うのは初めてです。このコードは、すべての QUESTION の子を WRONG に変更することを意図して記述しています。

var urlRequest:URLRequest = new URLRequest("question.xml");
        var urlLoader:URLLoader = new URLLoader();
        urlLoader.dataFormat = URLLoaderDataFormat.TEXT;
        urlLoader.addEventListener(Event.COMPLETE, urlLoader_complete, false, 0, true);
        urlLoader.load(urlRequest);


    private function urlLoader_complete(e:Event):void {
        var question:XML = new XML(e.target.data);
        question.QUESTION.setName("WRONG");
        trace("FINISH!");
    }

プログラムが実行され、Finish traced という単語が正常に表示されました。ただし、xml ファイル question.xml を確認すると、QUESTION の子の名前が変更されていません。

誰かが私のためにこれを説明できますか?

どうもありがとう

4

1 に答える 1

0

setNameは正しい方法ですが、あなたの例では、個々のノードではなく、によって返される XMLList で使用していますquestion.QUESTION- 技術的には、XML ツリーには表示されないため、 XML 出力。

結果を得るには、実際のノードを反復処理する必要があります。

var question:XML = <QUESTIONS><QUESTION /><QUESTION /></QUESTIONS>;
var questions:XMLList = question.QUESTION;
for each( var node:XML in questions )
    node.setName( "WRONG" );
trace ( question ); // output: <QUESTIONS><WRONG /><WRONG /></QUESTIONS>

または単一ノードの場合:

var question:XML = <QUESTIONS><QUESTION /></QUESTIONS>;
var questions:XMLList = question.QUESTION;
questions[0].setName( "WRONG" );
trace ( question ); // output: <QUESTIONS><WRONG /></QUESTIONS>
于 2012-05-27T08:11:22.397 に答える