2012-09-09 36 views
0

我试图使用Adobe Air应用程序将数据附加到XML文件并将其保存。Adob​​e Air Flex附加并保存到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

reminder.insertLineBefore()实际返回更新的对象,只是用写/保存时发生了什么回来。

此处了解详情:XML.insertChildBefore()

+0

感谢,但它的我遇到麻烦 – user1584282

+0

那么如果唯一的问题是,它增加了文件的末尾,更改行保存位'stream.open(文件,FileMode.APPEND);'to'stream.open(file,FileMode.WRITE);'然后就在你调用'stream.close();'之前,添加'stream.truncate();'。希望有所帮助。 – xLite

+0

我删除了标签问题似乎解决了 – user1584282