精通Flex 3.0――4.6.7 XML的类型转换

  对于XML类型的转换,首先可以在进行从XML对象向XMLList对象的转换。XML对象实际上也是一个只有一个节点的XMLList对象。可以通过定义变量的方式直接完成转换。从XML的一部分转换为XMLList的代码如下所示。

var flexXML:XML=

<RIA>

         <FlashPlayer>

                   <Flash>

                   <Name>Flash CS3</Name><Version>9</Version>

                   </Flash>

                   <Flash>

                   <Name>Flash 8</Name><Version>8</Version>

                   </Flash>

                   <Flash>

                   <Name>Flash 2004MX</Name><Version>7</Version>

                   </Flash>

                   <Flex>Flex3</Flex>

         </FlashPlayer>

</RIA>

var flexXMLList:XMLList= flexXML.child("FlashPlayer").child("Flash");

trace(flexXMLList.toString());

上面的代码中,将flexXML对象中FlashPlayer节点下的所有Flash节点形成一个XMLList对象。上面的代码输出结果如下所示。

<Flash>

  <Name>Flash CS3</Name>

  <Version>9</Version>

</Flash>

<Flash>

  <Name>Flash 8</Name>

  <Version>8</Version>

</Flash>

<Flash>

  <Name>Flash 2004MX</Name>

  <Version>7</Version>

</Flash>

同样,也可以采用直接赋值的方式将一个XMLList对象的元素转换为XML对象。在上面的代码基础上进行转化,代码如下所示。

var flexXMLm:XML=flexXMLList[0];

trace(flexXMLm);

这样就把flexXMLList中的第一个节点转换为一个XML对象,输出结果如下所示。

<Flash>

  <Name>Flash CS3</Name>

  <Version>9</Version>

</Flash>

使用这种对象级别的转换可以让原始数据保持不变,而且操作XMLXMLList对象也不会干扰到原数据。这样,在保证原始数据的完整性基础上,方便得进行数据的访问修改。

XML以及XMLList对象都可以转换为String类型的内容。输出的内容就是拥有XML格式要求的一组字符串。而当使用String类型的内容转换为XML对象的时候。一定要保证字符串是标准的XML格式,否则在运行时会抛出一个错误。

同样对于XML内容的处理完全可以使用字符串的方式进行处理。下面的代码展示了对XML对象的内容采用字符串处理的方法。

var flexXML:XML =

<RIA>

<FlashPlayer>

         <Flash>

         <Name>Flash CS3</Name><Version>9</Version><price>1000</price>

         </Flash>

         <Flash>

         <Name>Flash 8</Name><Version>8</Version><price>1000</price>

         </Flash>

         <Flash>

         <Name>Flash 2004MX</Name><Version>7</Version><price>1000</price>

         </Flash>

</FlashPlayer>

</RIA>

         var Count:XML = <total>0</total>;

         flexXML.appendChild(Count);

         for each (var Flash:XML in flexXML.FlashPlayer.Flash)

         {

                  flexXML.total.children()[0] = Number(flexXML.total.children()[0])+ Number(Flash.price.children()[0]);

         }

         trace(flexXML.total);                                                //输出3000

上面的代码通过对String数据的强制转换,让整个XML文档中相关的内容参与到计算当中。这种处理数据的方式使得开发Flex应用变得简单快捷。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值