0

Adobe Airアプリを使用してXMLファイルにデータを追加し、保存しようとしています。

このメソッドは、必要な場所にデータを配置しますが、データは保存しません。

reminder.insertChildBefore(xmlArray[0],             
 <item>
  <event>{txtEvent.text}</event>
  <date>{dateFormatter.format(dfDate.selectedDate)}</date>
  <dateb>{dfDate.selectedDate.toDateString()}</dateb>       
  <time>{formattedtime}</time>
 </item>);

以下のメソッドは、XMLのタグの外側/下に配置し<reminder> </reminder>、ファイルの最後に追加するだけです。このメソッドはデータを保存します。

var outputString:String;
outputString =

"\n"+
<item>
<event>{txtEvent.text}</event>
<date>{dateFormatter.format(dfDate.selectedDate)}</date>
<dateb>{dfDate.selectedDate.toDateString()}</dateb>     
<time>{formattedtime}</time>
</item>;

outputString = outputString.replace(/\n/g, File.lineEnding);
stream = new FileStream();
stream.open(file, FileMode.APPEND);
stream.writeUTFBytes(outputString);
stream.close();

このオプションは問題ありませんが、XMLから最後の行を削除してから、新しい最後の行を書き込むように取得する必要があります。プログラムの後半でコードを再利用できるので、このオプションを使用したほうがよいでしょう。

これらの方法のいずれかを正しく機能させる方法についてのアドバイスをいただければ幸いです。


アイデアは、以下のXMLデータに追加することです。最初のメソッドはデータを正しく挿入しますが、保存しません。2番目のメソッドは、</reminder>タグの下にデータを追加します。

<?xml version="1.0" encoding="utf-8"?>
<reminder>
 <item>
    <event>Christmas Day</event>
    <date>2012/12/25</date>
    <dateb>Tue Dec 25 2012</dateb>
    <time>08:00 AM</time>
  </item>
</reminder>
4

1 に答える 1