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

时间:2015-04-01 18:16:29

标签: xml actionscript-3 flash urlrequest

我有一个包含值的Xml文件,我正在使用Flash AIR 应用程序和Action Script3,

<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文件。

1 个答案:

答案 0 :(得分:0)

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

编辑:我看到您评论您使用的是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 static formatting properties控制格式输出。