博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Flex【原创】Xml与Object互转/读写本地Xml文件
阅读量:5125 次
发布时间:2019-06-13

本文共 4077 字,大约阅读时间需要 13 分钟。

  最近操作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 = '
'; 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

你可能感兴趣的文章
hihocoder1187 Divisors
查看>>
js window.open 参数设置
查看>>
032. asp.netWeb用户控件之一初识用户控件并为其自定义属性
查看>>
前端监控
查看>>
移动开发平台-应用之星app制作教程
查看>>
leetcode 459. 重复的子字符串(Repeated Substring Pattern)
查看>>
springboot No Identifier specified for entity的解决办法
查看>>
浅谈 unix, linux, ios, android 区别和联系
查看>>
51nod 1428 活动安排问题 (贪心+优先队列)
查看>>
中国烧鹅系列:利用烧鹅自动执行SD卡上的自定义程序(含视频)
查看>>
Solaris11修改主机名
查看>>
latex for wordpress(一)
查看>>
如何在maven工程中加载oracle驱动
查看>>
Flask 系列之 SQLAlchemy
查看>>
aboutMe
查看>>
【Debug】IAR在线调试时报错,Warning: Stack pointer is setup to incorrect alignmentStack,芯片使用STM32F103ZET6...
查看>>
一句话说清分布式锁,进程锁,线程锁
查看>>
FastDFS使用
查看>>
服务器解析请求的基本原理
查看>>
[HDU3683 Gomoku]
查看>>