Flex【原创】Xml与Object互转/读写本地Xml文件
生活随笔
收集整理的這篇文章主要介紹了
Flex【原创】Xml与Object互转/读写本地Xml文件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
最近操作Xml文件比較多,因此封裝了一下Xml文件操作類
主要功能包括:?? 1.Xml 轉 Object
2.Object 轉 Xml
3.讀取本地Xml(air)
4.Xml寫到本地(air)
代碼如下:
?
package {import flash.events.EventDispatcher;import flash.filesystem.File;import flash.filesystem.FileMode;import flash.filesystem.FileStream;import flash.system.System;import flash.xml.XMLDocument;import flash.xml.XMLNode;import mx.collections.ArrayCollection;import mx.rpc.xml.SimpleXMLDecoder;import mx.rpc.xml.SimpleXMLEncoder;import org.binyy.supermedia.app.utils.config.Config;/***Xml Manager * */public class XmlManager extends EventDispatcher{private static const XMLHEAD:String = '<?xml version="1.0" encoding="utf-8"?>';public function XmlManager(){throw new Error("Don't init static class");}/*** update xml data* @param data* @param path* */public static function updateXmlItem(data:ArrayCollection,path:String):void{var xml:XML = objectToXML(Util.sortItemIndex(data).source);writeXmlFile(xml,path);if(xml)System.disposeXML(xml);if(data)data = null;}/*** remove xml data* @param data* @param path* */public static function removeXmlItem(data:ArrayCollection,path:String):void{for(var i:int = data.length -1 ; i >= 0 ; i--){if(data.getItemAt(i).selected){data.removeItemAt(i);}}var xml:XML = objectToXML(Util.sortItemIndex(data).source);writeXmlFile(xml,path);if(xml)System.disposeXML(xml);if(data)data = null;}/*** Object to Xml* @param obj* * @return XML* */public static function objectToXML(obj:Object):XML { var xmlDocument:XMLDocument = new XMLDocument(); var xmlNode:XMLNode = (new SimpleXMLEncoder(xmlDocument)).encodeValue(obj, new QName("root"), xmlDocument); var xml:XML = new XML(xmlDocument.toString()); return xml; } /*** Xml to Object* @param xml* * @return Object* */public static function XMLToObject(xml:XML):Object{var xmlDocument:XMLDocument = new XMLDocument(xml);var resultObj:Object = (new SimpleXMLDecoder()).decodeXML(xmlDocument);return resultObj;}/*** read Local xml file* @param path* * @return XML* */public static function readXmlFile(path:String):XML{var file:File = File.applicationDirectory.resolvePath(path); // trace("read : " + file.nativePath);var fileStream:FileStream = new FileStream(); fileStream.open(file, FileMode.READ); var xml:XML = XML(fileStream.readUTFBytes(fileStream.bytesAvailable)); fileStream.close();return xml;}/*** write Local xml file* @param xml XML file* @param path* */public static function writeXmlFile(xml:XML,path:String):void{var file:File = new File(File.applicationDirectory.resolvePath(path).nativePath);// trace("write : " + file.nativePath);var fileStream:FileStream = new FileStream(); fileStream.open(file, FileMode.WRITE); var outputString:String = XMLHEAD; outputString += xml.toXMLString(); fileStream.writeUTFBytes(outputString); fileStream.close();}} }?
?
轉載于:https://www.cnblogs.com/loveFlex/archive/2012/07/13/2589664.html
總結
以上是生活随笔為你收集整理的Flex【原创】Xml与Object互转/读写本地Xml文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深度学习基础(三)loss函数
- 下一篇: 从抓包的角度分析connect()函数的