我有一个具有值的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
静态格式设置属性控制格式设置输出。