Flex读XML的方法:
方法一:
private function readXML1():void{ var xmlFile:File = new File("file path"); var stream:FileStream = new FileStream(); stream.open(xmlFile,FileMode.READ); var xml:XML = XML(stream.readUTFBytes(stream.bytesAvailable)); stream.close(); }
方法二:
private function readXML2():void{ var urlRequest:URLRequest = new URLRequest("xml file path"); var urlLoader:URLLoader = new URLLoader(urlRequest); urlLoader.addEventListener(Event.COMPLETE,completeHandler); } private function completeHandler(event:Event):void{ var xml:XML = new XML(event.target.data); trace(xml); }
Flex写XML的方法:
public static function writeXMLFile(xml:XML):void{ var stream:FileStream = new FileStream(); var xmlFile:File = new File("file path"); var outputString:String = '<?xml version="1.0" encoding="utf-8"?>n'; outputString += xml.toXMLString(); outputString = outputString.replace(/n/g,File.lineEnding); stream = new FileStream(); stream.open(xmlFile,FileMode.WRITE); stream.writeUTFBytes(outputString); stream.close(); }
补充:可以通过WebService,HttpService以及RemoteObject等方式调用Java或C#等完成文件的读写操作。
Flex端:
<mx:Script> javaService.getOutStream(xml); </mx:Script> <mx:RemoteObject id="javaService" destination="fileOutput" showBusyCursor="true" result="Alert.show('设置成功,请刷新浏览器!')" fault="Alert.show('文件输出错误!')"/>
Java端:
package util; import java.io.BufferedWriter; import java.io.File; import java.io.FileOutputStream; import java.io.OutputStreamWriter; public class setView { public boolean getOutStream(String str) { try { File f = new File("webapps/test/xml/example.xml"); FileOutputStream fos = new FileOutputStream(f,false); OutputStreamWriter osw = new OutputStreamWriter(fos,"UTF-8"); BufferedWriter bw = new BufferedWriter(osw); bw.write(str); bw.close(); osw.close(); fos.close(); return true; } catch (Exception e) { e.printStackTrace(); return false; } } }
config.xml添加配置