gpt4 book ai didi

xml - 柔性 : Convert ArrayCollection to XML

转载 作者:数据小太阳 更新时间:2023-10-29 02:25:19 27 4
gpt4 key购买 nike

在 Flex 中,很容易将 XML 转换为 Object 和 ArrayCollection,方法是使用

var decoder:SimpleXMLDecoder = new SimpleXMLDecoder();
decoder.decodeXML( xml );

但是有没有什么好的方法可以把ArrayCollection转成XML。我在互联网上搜索了一段时间,但没有找到任何答案。

谢谢。

最佳答案

看看这个使用 SimpleXMLEncoder 的例子:

<mx:Script>
<![CDATA[

import mx.rpc.xml.SimpleXMLEncoder;
import mx.utils.ObjectUtil;
import mx.utils.XMLUtil;
import mx.collections.ArrayCollection;

private var items:ArrayCollection;

private function onCreationComplete():void
{
var source:Array = [{id:1, name:"One"}, {id:2, name:"Two"}, {id:3, name:"Three"}];
var collection = new ArrayCollection(source);

trace(objectToXML(collection.source).toXMLString());
}

private function objectToXML(obj:Object):XML
{
var qName:QName = new QName("root");
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());

return xml;
}

]]>
</mx:Script>

...生成以下 XML:

<root>
<item>
<id>1</id>
<name>One</name>
</item>
<item>
<id>2</id>
<name>Two</name>
</item>
<item>
<id>3</id>
<name>Three</name>
</item>
</root>

我应该注意到得到了 objectToXML 函数 from Peter de Haan's blog ,但是人们显然对 SimpleXMLEncoder 类有一些问题。在我自己的测试中,对简单对象进行编码效果很好(如上所述),但复杂类型往往会产生不可预测的结果。 (例如,对 Font 对象数组进行编码会生成一长串空项目节点。)

但是根据您尝试序列化的类型,这种方法可能适合您。希望对您有所帮助!

关于xml - 柔性 : Convert ArrayCollection to XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1176453/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com