【问题标题】:Adobe Air Flex appending and saving to XML fileAdobe Air Flex 附加并保存到 XML 文件
【发布时间】:2012-09-09 03:57:01
【问题描述】:

我正在尝试使用 Adob​​e 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 的 &lt;reminder&gt; &lt;/reminder&gt; 标记之外/之下,它只是将它添加到文件的末尾。此方法保存数据。

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数据中,第一种方法正确插入数据但不保存,第二种方法将其附加到&lt;/reminder&gt;标签下方。

<?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>

【问题讨论】:

    标签: xml apache-flex actionscript adobe append


    【解决方案1】:

    reminder.insertLineBefore()实际上返回的是更新后的对象,只是使用写入/保存时返回的内容。

    更多信息在这里:XML.insertChildBefore()

    【讨论】:

    • 好吧,如果唯一的问题是它添加到文件末尾,请将stream.open(file, FileMode.APPEND); 行更改为stream.open(file, FileMode.WRITE);,然后在调用stream.close(); 之前添加stream.truncate();。希望对您有所帮助。
    • 我去掉了标签问题好像解决了
    • 不,我需要使用第一种方法,否则我将永远无法使用删除项目按钮。我需要知道如何获得第一种方法来保存对 XML 文件所做的更改。
    猜你喜欢
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-26
    • 1970-01-01
    • 2012-04-02
    • 2010-11-23
    • 1970-01-01
    相关资源
    最近更新 更多