PHP, JavaScript, Ajax, jQuery, ActionScript, Flex, AIR, Facebook App, Linux, Apache, MySQL...

2010年6月3日 星期四

[Flex]將 ArrayCollection 資料轉成 XML

有時會需要用到 Flex 來產生 XML 文件,下面一個簡單的方法可以用 ArrayCollection 來產生 XML:
Flex 程式碼:
<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>

1 意見:

小王子 提到...

期待更多FLEX系列文章

張貼留言