关于加载外部xml文件转换成xml时出错!

原创 2011年01月19日 16:06:00

错误提示:强制转换类型失败:无法将“XXXX”转换为xml;

 

解决:event.target.data 它不是XML类型的 所以使用as运算符后得到的是null。
XML(event.target.data); 这句因为把event.target.data 做了类型转换,转换后会把 event.target.data 按照XML的格式转成XML类型的变量。
as运算符判断数据类型正确后才按这个数据类型返回,所以 event.target.data 不为XML的时候就返回null了。
trace(event.target.data is XML)为false,trace(typeof(event.target.data))输出的是String。

 

 

源代码:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="initApp()">
<mx:Script>
    <![CDATA[
        import mx.collections.ArrayCollection;
        import mx.managers.CursorManager;
       
        private var loader:URLLoader = new URLLoader();
       
        private function initApp():void
        {
            var url:String = "assets/sports.xml";
            var request:URLRequest = new URLRequest("assets/sports.xml");
            loader.load(request);
            loader.addEventListener(Event.COMPLETE,completeHandler);
            loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR,securityErrorHandler);
            loader.addEventListener(IOErrorEvent.IO_ERROR,ioErrorHandler);
            CursorManager.setBusyCursor();
        }
       
        private function completeHandler(event:Event):void
        {
            CursorManager.removeBusyCursor();
            //trace(event.target.data);
            var myXML:XML = XML(event.target.data); //如果是 var myXML:XML = event.target.data;就会出现上面的错误提示

                                                                               //var myXML:XML = event.target.data as XML;则得到的myXML为null;
            trace(myXML)
            parseRSS(myXML);
           
        }   
       
        private function securityErrorHandler(event:SecurityErrorEvent):void
        {
            trace("securityErrorHandler");   
        }
       
        private function ioErrorHandler(event:IOErrorEvent):void
        {
            trace("ioErrorHandler");
        }
       
        private function parseRSS(xml:XML):void
        {
            //trace(xml);
            return;
            var info:XML = xml;
            var items:ArrayCollection = new ArrayCollection();
           
            for(var i:String in info..item)
            {
                var obj:Object = new Object();
                var node:XML = info..item[i];
                obj.title = node.title;
                obj.link = node.link;
                obj.pubData = node.pubData;
                obj.description = node.description;
               
                items.addItem(obj);
            }
           
            newsList.labelField = "title";
            newsList.dataProvider = items;
        }
       
        private function showNews():void
        {
           
        }                   
    ]]>
</mx:Script>
   
<mx:Panel x="10" y="0" width="400" height="360" layout="absolute" title="sina news">
    <mx:VDividedBox width="100%" height="100%">
        <mx:List id="newsList" width="100%" change="showNews()"/>
        <mx:TextArea id="news_txt" width="100%" height="137"/>
    </mx:VDividedBox>
</mx:Panel>
</mx:Application>

 

sports.xml源文件:

 

<items>
    <item>
        <title>在一个复古当道的时代你如何穿戴搭配</title>
        <link>http://blog.sina.cn/u/4asdfsfsdv</link>
        <pubData>Wed, 23 May 2007 07:07:45 GMT</pubData>
        <description>十分十分十分十分的十分</description>
    </item>
</items>

 

相关文章推荐

php将xml文件转换成数组

以下我们是直接引用的一个url地址作为xml的接收对象,实际情况中你也许自己有自己的xml,只需要先将xml转化成字符串,然后引用类来进行处理就可以了。 以下是xml文件   - - ...

Android中,把XML文件转换成Object对象的方法

XML文件为: Android开发实例基础 120 100 70 0 0 60 描述 111111111111111111111111111111111111111111111...

使用dom4j将xml文件转换成bean

package com.util; import java.lang.reflect.Field; import java.util.HashMap; import java.util.Map; ...

使用dom4j将xml文件转换成project.properties文件

情景切入: 最近学校老师布置一个小作业,要求使用dom4j将xml文件转换成project.properties配置文件和Excel表格: 如XML文件: 三国简介 ...

将 HTML 文件转换成 XML

在 Java 专家 Michael Geisler 为 Builder 澳大利亚写的第一篇文章中,他向读者展示了如何使用 JTidy 将 HTML 文件转换成 XML。  有关 Java 的最重...

将INI文件转换成XML

  • 2005年11月15日 15:34
  • 26KB
  • 下载

把图象文件转换成XML格式文件(二进制转字符)

把图象文件转换成XML格式文件 利用.NET 框架下的FromBase64String和ToBase64String方法可以很容易地实现图象文件和XML文件的互换。这样可以轻易解决以XML格式保存图片...

把图象文件转换成XML格式文件

利用.NET 框架下的FromBase64String和ToBase64String方法可以很容易地实现图象文件和XML文件的互换。这样可以轻易解决以XML格式保存图片的问题。代码如下: P...
  • my98800
  • my98800
  • 2016年07月30日 11:58
  • 239

读取数据库表数据转换成XML文件

  • 2011年06月08日 14:43
  • 15KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于加载外部xml文件转换成xml时出错!
举报原因:
原因补充:

(最多只允许输入30个字)