首页 > 开发 > Xml > 正文

19.8.将ActionScript 数据对象编码成XML

2023-07-12 18:51:52
字体:
来源:转载
供稿:网友
19.8.1. 问题
如何将一个ActionScript 对象转换成XML.。
19.8.2. 解决办法
可以使用SimpleXMLEncoder.encodeValue 方法把一个对象及其属性写入到一个XMLDocument 对象里。
19.8.3. 讨论
当创建XML 以传送Web 服务或服务端方法的URL 为XML 时, SimpleXMLEncoder 对象是非常有用的。在这个对象中定义了一个名叫encodeValue 的方法, 其签名格式如下:
+展开
-ActionScript
encodeValue(obj:Object, qname:QName, parentNode:XMLNode):XMLNode

所生成的XML 会由该方法返回, 同时会附加到parentNode 所在的XMLDocument 对象内的XMLNode 中, 该方法会要求所有旧式XMLDocument 所生成的XML 附加到其中。当XMLDocument 生成以后, 可以通过XML 对象的构造函数, 并将该文档当作参数传递到构造函数中, 由此转换成XML 对象:
+展开
-ActionScript
var doc:XMLDocument = new XMLDocument('<data></data>');
var xml:XML = new XML(doc);

将一个对象编码到一个XML 文檔的完整代码列表如下所示:代码如下:
+展开
-XML
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxmlwidth="400"
height="300" creationC omplete="init()">

<mx:Script>
<![CDATA[
import mx.rpc.xml.SimpleXMLEncoder;
private var o:Object = {
name:"Josh",
description_items:{height:'183cm', weight:'77k'}};
private var doc:XMLDocument;
private function init():void {
doc = new XMLDocument('<data></data>');
var simpleEncode:SimpleXMLEncoder =
new SimpleXMLEncoder(doc);
var node:XMLNode = simpleEncode.encodeValue(o,
new QName('http://localhost/ns/ws''ls'),
doc.firstChild);
}

]]>
</mx:Script>
</mx:Canvas>

当调用了SimpleXMLEncoder.encodeValue 方法之后, XMLDocument 对象将会变成以下的构造:
+展开
-XML
<data>
<obj>
<description_items>
<height>183cm</height>
<weight>77k</weight>
</description_items>
<name>Josh</name>
</obj>
</data>
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表