首页 > 开发 > XML > 正文

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

2024-09-05 20:46: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>
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表