如何从动作脚本中的XML对象获取值

时间:2012-12-05 05:49:00

标签: actionscript-3 flex actionscript

我是灵活开发的新手。我正在尝试开发基于Web的应用程序。不知怎的,我觉得很舒服。我有一些与xml文档相关的查询。

在我的web服务中,我执行一些数据库操作并以XmlDocument对象格式返回一些xml数据。

我尝试使用以下功能解析它

    public  function objectToXML1(obj:Object):XML {
                var qName:QName = new QName("DATA");
                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;
            }

但我不知道如何从这个XML中提取数据

XML FORMAT

<REQUEST>
<STATUS>SUCCESS</STATUS>
<MESSAGE>BP Retrive </MESSAGE>
<DATA>
<BOM>
<BO>
<BusinessPartners>
<row>
<CardCode/>
<CardName/>
<Phone1/>
<Phone2/>
<Cellular/>
<EmailAddress/>
</row>
</BusinessPartners>
</BO>
</BOM>
</DATA>
</REQUEST>

1 个答案:

答案 0 :(得分:0)

如果您有XML的预定义结构,则可以使用FlexXB创建XML的ActionScript对象。这很简单,您创建一个看起来与XML完全相同的ActionScript对象(这意味着它需要具有相同的属性)并且您可以注释这些属性。因此,FlexXB将读取XML并从中创建一个ActionScript对象。

如果您不想使用该框架,您也可以手动完成。要读取属性,请使用xmlElement.@attributeName获取对象的名称,例如xmlElement.name().localName。有一些函数,但由于自动完成不适用于XML元素,因此找到正确的函数有点困难。 Here是Adobe的一篇文章,解释了如何使用XML。 Basicall你可以使用节点名作为属性名。在您的情况下,您可以写xmlElement.Phone1,依此类推。

希望有所帮助:)