1

我正在使用下面的代码将图像 ID 添加到 .XML 文件中:

var xmlGallery:XML =new XML ('<ENTRY "IMG_ID="' +img_id+'"/>')

var fGallery:File = File.applicationStorageDirectory.resolvePath("gallery.xml");
var sGallery:FileStream = new FileStream();

sGallery.open(fGallery,FileMode.APPEND);
sGallery.writeUTFBytes(xmlGallery.toXMLString());

.XML 输出如下所示:

<ENTRY "IMG_ID="1"/> 
<ENTRY "IMG_ID="2"/>
<ENTRY "IMG_ID="3"/>

我需要<?xml version="1.0" encoding="utf-8"?>在条目上方添加。怎么做?

谢谢。乌里

4

1 回答 1

0

为什么不在将任何 XML 节点附加到文件之前简单地编写字符串?尝试:

sGallery.open(fGallery, FileMode.APPEND);
sGallery.writeUTF("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
sGallery.writeUTFBytes(xmlGallery.toXMLString());

更新:基于 OP 评论的问题陈述更改:

不看源码很难说。我能理解的是您多次更新同一个 XML 文件。在这种情况下,最好的办法是执行以下操作:

  • 检查文件是否存在,
    • 如果它没有创建一个并添加 XML 声明和GALLERY开始和结束标签(即GALLERY元素)
    • 如果它确实存在,什么也不做
  • 在类型对象中读入文件XML
  • 使用 E4X 将所有子元素添加到此对象(AS3 中推荐的 XML 处理方式)
  • 完成添加/修改 XML 对象后,将其保存回文件

您还应该在此处asx3m查看XML 序列化库。

于 2012-05-18T17:41:30.113 回答