2015-04-01 47 views
0

我有,我使用Flash AIR应用与行动Script3,如何更新节点值到现有的XML文件中使用Flash AS3

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

对于读书,我使用的XML文件中值的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文件写这些。

+0

想要在用户机器上写入/更新文件吗?你在使用AIR吗?如果是这样,你可以轻松地做到这一点,假设应用程序有权限。如果没有,最好的办法是打开保存文件提示并指示用户保存在现有文件的顶部。 – BadFeelingAboutThis 2015-04-01 18:38:20

+0

@LDMS:是的,我正在使用AIR。我想更新现有的xml文件中的值 – 2015-04-01 18:39:19

+0

好,使用'File'和'FileStream'类。 http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/filesystem/File.html。您也可以使用文件类来读取文件,而不是URLLoader。以下是一个示例:http://www.adobe.com/devnet/air/flex/quickstart/articles/xml_prefs.html – BadFeelingAboutThis 2015-04-01 18:42:48

回答

0

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

编辑:我看到你的评论,你正在使用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来控制格式输出。

相关问题