flex xml和arraycollection相互转换
1、arraycollection转化为xml,代码如下:
//动态生成树形结构
public static function flatArrayToXML(arr:Object,rootname:String=null,nodename:String=null, outputString:Boolean=false):Object{
if (arr is Array){
}else if ( arr is ArrayCollection){
arr= ArrayCollection(arr).source;
}else if (arr == null){
return null;
}
if (rootname==null) rootname="root";
var xmlstr:String="<"+rootname+" "+"label='套餐项目'>";
var xmlList:XMLList=new XMLList();
var alength:int=arr.length;
if (alength > 0)
{
for (var i:int=0; i < alength; i++)
{
xmlstr+=objToSimpXML(arr[i].name,0,nodename,true);
}
xmlstr +="</"+nodename+">";
}
}
}
xmlstr+="</"+rootname+">";
trace(xmlstr);
var xmldoc:XMLDocument=new XMLDocument(xmlstr);
if (outputString==true)
return xmldoc==null ? "": xmldoc.toString();
var xml:XML=new XML(xmldoc);
return xml;
}
//将对象转换为简单xml.<node property1='value1' property2='value2'/>这种形式
//obj转换源对象,仅支持简单对象,如果对象的属性也是一个对象则不进入递归,
//nodename可以自定义节点名称, 默认是"node"
//是否输出为字符串, 默认转换为xml, 如果为true则将xml变为字符串
//return 值类型根据outputString 来决定, 可能是XML,可能是String
public static function objToSimpXML(ri_name:String,nodeorchild:int, nodename:String=null, outputString:Boolean=false):String{
if(ri_name==null) return null;
if (nodename==null)nodename="node";//节点名字
var str:String="<"+nodename;
str+=" label='"+filterXMLString(ri_name)+"'";节点中属性的名字
nodeorchild == 1?str+="/>":str+=">";
//
相关文档:
<?xml version="1.0" encoding="utf-8"?>
<!-- Simple example to demonstrate the DateTimeAxis class. -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
import mx.collections.ArrayCollection;
......
对于习惯了使用桌面应用程序的用户而言,回车后下移焦点到下一个编辑组件中的小功能,是非常贴心的,利用flex中的KEY_DOWN事件可以方便的实现回车下移焦点,代码如下:
<?xml version="1.0" encoding="utf-8"?>
<mx:Module xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplet ......
flex 正则表达式学习资料
一般来说各个开发环境或者语言对于正则表达式的
实现不是完全一样的,但是差别都非常细微。AS3按照ECMA262标准实现正则表达式,感觉帮助文档对这部分介绍的不是很好,很多概念都没有讲清楚,这里找到了一个不错的学习资料,如果帮助文档里面有看不懂的可以参考下!
揭开正则表达式的神秘面纱 关 ......
gloox自己实现了xml的解析模块,没有用到第三方的库(tinyXML,expat )
主要涉及的文件:
tag.h (tag.cpp)
taghandler.h
parser.h (parser.cpp)
1. Tag一个Tag就是一个XML元素
例如:
a.
<book kind='computer'>
<store id='23'/>
<author>
qiang
</author>
</bo ......
XML现在已经成为一种通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便。对于XML本身的语法知识与技术细节,需要阅读相关的技术文献,这里面包括的内容有DOM(Document Object Model),DTD(Document Type Definition),SAX(Simple API for XML),XSD(Xml Schema Definition),XSLT(Exten ......