如何使用Flash AS3将节点值更新到现有的XML文件中



我有一个具有值的Xml文件,我正在使用带有Action Script3、的FlashAIR应用程序

<Home>
  <Name>John</Name >
  <RollNo>102</RollNo >
  <Age>25</Age >
  <Mark>70</Mark >
</Home >

为了读取xml文件,我使用了

var xmlLoader:URLLoader = null;
var xmlData:XML = new XML();
xmlLoader = new URLLoader();
xmlLoader.addEventListener(Event.COMPLETE, LoadingXMLData);
xmlLoader.load(new URLRequest("Details.xml"));
function LoadingXMLData(e:Event):void
{
    xmlData = new XML(e.target.data);
    ParseXML(xmlData);
}
function ParseXML(configData:XML):void 
{
    trace("XML Data : " + configData);
}

我想更新一个特定的节点值。如何更新现有XML文件中的值。

为了更新值,我尝试了

xmlData.replace(xmlData.hostName,"Helooon");
trace("Updated XML Data : " + xmlData);

如何将这些内容写入现有的XML文件。

要将XML保存回文件,您必须在Flash Player中使用FileReference.save(),或者在AIR中使用带有FileStream.writeUTFBytes()File

EDIT:我看到您的评论,说您正在使用AIR,所以您可以使用File类。这里有一个快速的例子:

var file:File = File.documentsDirectory.resolvePath("Details.xml");
var stream:FileStream = new FileStream();
stream.open(file, FileMode.WRITE);
stream.writeUTFBytes(xmlData);
stream.close();

请注意,由于XML是经过解析和重新编码的,因此格式可能会发生变化。可以使用XML静态格式设置属性控制格式设置输出。

最新更新