あるファイルからxmlタグとそのデータを読み取り、それを別のxmlに書き込む必要があります..どうすればいいですか?? すぐに教えてください...?
3 に答える
http://livedocs.adobe.com/flex/2/langref/XML.htmlを参照してください。質問する前にこれをグーグルで検索したとは信じがたいです。
私の知る限り、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 の方法を使用して書き込みます。上で説明した方法を使用して個々の値から配列を作成し、必要に応じてタグなどを手動で挿入することもできます。これの利点は、後で必要になるすべての値を配列で準備できることです。インデックスをループする場合、これは多くの作業を必要とせず、私が行う方法です。
お役に立てれば!
FileReference.save() メソッドを使用して、XML データをローカル ファイルに保存できます。最初にファイルを保存する場所をユーザーに要求し、次にデータを保存します。
次に例を示します。
var xml:XML = <root><someXmlTag/></root>;
var fileReference:FileReference = new FileReference()
fileReference.save(xml, "myfile.xml");