0

是否可以在 Flex 中将 XML 文件反序列化为类,而无需手动检查 XML 和/或创建类,借助HttpService?

编辑:解释得更多更好。

我们有一个 XML 文件,其中包含:

<Project>
 <Name>NameGoesHere</Name>
 <Number>15</Number>
</Project>

在 Flex 中,我们希望将其序列化为我们的 Project 类:

package com.examplepackage
{
    import mx.collections.ArrayCollection;

    [XmlClass]
    public class Project
    {
        public var Name:String;
        public var Number:int;  

        public function Project()
        {
        }
    }
}

XML 使用 HTTPService 加载。

4

3 回答 3

1

为了让 Flex 为您自动序列化和反序列化对象,需要某种 WSDL 或 RPC 协议。因此,您要么需要指定一个 WSDL 用于反序列化 XML 数据,要么使用 AMF 或其他协议,要么使用 httpservice 直接返回的任何 MIME 类型。

编辑: 您可以设置自己的一组类来处理 xml 对象的反序列化。AMF 服务的工作方式是,它首先将返回的对象反序列化为mx.utils.ObjecProxy实例,然后将 的type属性与ObjectProxy现有的匹配,并在动态属性RemoteClass的值中初始化类的属性。您可以通过查看类型的 XML 根和属性和值的子节点来设置您自己的一组类来创建 ObjectProxy,然后基于 Object 代理实例化您的 AS 类。但是,您将无法避免必须编写一些代码来直接处理 XML。PropertyListObject

于 2009-11-26T15:52:27.893 回答
0

您可能想尝试一个 xml 序列化库,例如 FlexXB ( http://code.google.com/p/flexxb )。它使用注释来自动化(反)序列化过程,让您可以很好地控制生成的 xml。

于 2010-03-06T00:27:52.177 回答
0

也可以尝试将 xml 反序列化为 Object:

http://ahmadflex.blogspot.com/2010/05/desrializing-helper-class-xml-to-object.html

于 2010-05-05T16:12:49.147 回答