我正在尝试使用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数据中,第一种方法正确插入数据但不保存数据,第二种方法将其附加到</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>
答案 0 :(得分:0)
reminder.insertLineBefore()
实际上返回更新后的对象,只需使用写入/保存时返回的内容。
此处有更多信息:XML.insertChildBefore()