加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Flex3 Object to xml

发布时间:2020-12-15 01:12:36 所属栏目:百科 来源:网络整理
导读:// 自己遍历Object转换(属性方示表现) public? function ?objectToXml1(obj:Object,name:String):XML{ ???? var ?result?:?XML; ???? var ?info:Object? = ?ObjectUtil.getClassInfo(obj); ???? if (name == null ) ????????name? = ?info.name; ?????????

//自己遍历Object转换(属性方示表现)
public?function?objectToXml1(obj:Object,name:String):XML{
????
var?result?:?XML;
????
var?info:Object?=?ObjectUtil.getClassInfo(obj);
????
if(name==null)
????????name?
=?info.name;
????????????????
????
var?line:String?=?"<"?+?name;
????
for?each?(var?qn?:?QName?in?info.properties){
????????line?
+=?"?";
????????line?
=?line?+?qn.toString()?+?"=";
????????line?
=?line?+?"""?+?obj[qn.toString()]?+?""";
????}
????line?
+=?"/>"
????
????result?
=?new?XML(line);
????
return?result;
}

//自己遍历Object转换(子节点方示表现)
public?function?objectToXml2(obj:Object,name:String):XML{
????
var?result?:?XML;
????
var?info:Object?=?ObjectUtil.getClassInfo(obj);
????
if(name==null)
????????name?
=?info.name;
????result?
=?new?XML("<"?+?name?+?"></"+?name?+?">");
????
for?each?(var?qn?:?QName?in?info.properties){
????????
var?val?:?Object?=?obj[qn.toString()];
????????
if(ObjectUtil.isSimple(val))
????????????result[qn.toString()]?
=?val;
????????
else
????????????result.appendChild(objectToXml2(val,qn.toString()));
????}
????
return?result;????????????
}

//通过SimpleXMLEncoder转换
private?function?objectToXml3(obj:Object,name:String):XML?{
????
var?qName:QName?=?new?QName(name);
????
var?xmlDocument:XMLDocument?=?new?XMLDocument();
????
var?simpleXMLEncoder:SimpleXMLEncoder?=?new?SimpleXMLEncoder(xmlDocument);
????
var?xmlNode:XMLNode?=?simpleXMLEncoder.encodeValue(obj,?qName,?xmlDocument);
????
var?xml:XML?=?new?XML(xmlDocument.toString());
????
//?trace(xml.toXMLString());
????return?xml;
}

?

?


var?testPerson:Object?=?{name:"xxx",role:"leader",phone:"123456",email:"mail@mail.com",image:"ttt.swf"};
var?xml1:XML?=?objectToXml1(testPerson,"person");
var?xml2:XML?=?objectToXml2(testPerson,"person");
var?xml3:XML?=?objectToXml3(testPerson,"person");

?

返回结果

xml1的值
<person?email="mail@mail.com"?image="ttt.swf"?name="xxx"?phone="123456"?role="leader"/>

?

xml2的值
<person>
??
<email>mail@mail.com</email>
??
<image>ttt.swf</image>
??
<name>xxx</name>
??
<phone>123456</phone>
??
<role>leader</role>
</person>

?

xml3的值
<person>
??
<email>mail@mail.com</email>
??
<image>ttt.swf</image>
??
<name>xxx</name>
??
<phone>123456</phone>
??
<role>leader</role>
</person>

?

?

另外Adobe也有一个object转xml的例子,有感兴趣的可以参考一下。
http://www.adobe.com/cfusion/communityengine/index.cfm?event=showdetails&productId=2&postId=11988

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读