-2

あるファイルからxmlタグとそのデータを読み取り、それを別のxmlに書き込む必要があります..どうすればいいですか?? すぐに教えてください...?

4

3 に答える 3

1

http://livedocs.adobe.com/flex/2/langref/XML.htmlを参照してください。質問する前にこれをグーグルで検索したとは信じがたいです。

于 2009-04-28T09:21:33.190 に答える
0

私の知る限り、Flex はファイルに書き込むことができませんでした!

HTTPService を使用して XML ファイルをロードし、結果イベント ハンドラーを使用してそれにアクセスします。

<mx:HTTPService id="service" url="myXml.xml" result="ServiceResult (event)"/>

HTTPService タグで結果の形式を指定しないでください。これは結果イベント ハンドラのコードです。

private function ServiceResult (e : ResultEvent) : void {
    e.result.XmlTag.AnotherXmlTag;
}

service.lastResult を使用して、HTTPService によって返された最後の結果にアクセスすることもできます。結果は、特に配列とチャート シリーズで、dataProvider プロパティと完全に互換性があります。

var series : LineSeries = new LineSeries ();
series.dataProvider = e.result.XmlTag.AnotherXmlTag;

これにより、XmlTag 内のすべての AnotherXmlTag タグの値が取得されます。ただし、シリーズの場合は、yField または xField のいずれかも指定する必要がありますが、脱線します :-)

うまくいかない場合は、 as キーワードを使用してキャストすることもできます。例:

series.dataProvider = e.result.XmlTag as ArrayCollection;

このシナリオで実際にキャストしようとしたことはありませんが、要するに、XML タグは配列や ArrayCollections とさまざまな互換性があるということです。

あなたの場合、e.result を使用して完全な XML ファイルを取得し、それを変数に割り当て、Ben の方法を使用して書き込みます。上で説明した方法を使用して個々の値から配列を作成し、必要に応じてタグなどを手動で挿入することもできます。これの利点は、後で必要になるすべての値を配列で準備できることです。インデックスをループする場合、これは多くの作業を必要とせず、私が行う方法です。

お役に立てれば!

于 2009-05-02T00:33:24.237 に答える
0

FileReference.save() メソッドを使用して、XML データをローカル ファイルに保存できます。最初にファイルを保存する場所をユーザーに要求し、次にデータを保存します。

次に例を示します。

var xml:XML = <root><someXmlTag/></root>;
var fileReference:FileReference = new FileReference()
fileReference.save(xml, "myfile.xml");
于 2009-04-28T22:04:53.463 に答える