关于加载外部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>

 

关于Xml文件读取报错的问题

在读取XML文件时,出现了以下问题,如图: 上次出差就遇到了,由于当时部署项目,事情较多,就没细究问题所在。今天在次遇到了这个问题,终于发现了问题所在。1.错误信息提示——[Fatal Erro...
  • lamb7758
  • lamb7758
  • 2017年03月09日 16:49
  • 1045

c#中XML解析文件出错解决方法

在解析xml时,经常因为文件中含特殊字符而解析失败。原因有两个:一是内容中含有XML预定义好的实体,二是内容中含有低位非打印字符 1.内容中含有xml预定好的实体,如“"标记...
  • qq798833488
  • qq798833488
  • 2016年07月21日 14:47
  • 1737

C#生成、解析xml文件以及处理报错原因

简单的介绍一下生成XML文件以及解析,因为有些数据不一定放到数据库,减少链接数据库        用xml还是比较好些。如果遇到问题也就是解析时报错,对于解析,可以选择用ie浏览器进行验证    ...
  • lilinoscar
  • lilinoscar
  • 2014年03月11日 18:02
  • 5261

为什么XML需要序列化和反序列化

为什么需要序列化 注意:“为避免编译错误,为可序列化的类添加了无参数构造函数。” MSDN的定义:序列化是将对象状态转换为可保持或可传输的形式的过程。序列化的补集是反序列化,后者将流转换为...
  • mobei1983
  • mobei1983
  • 2016年06月03日 20:22
  • 1301

转换xml格式的短信记录

2         0         1         18712345678         2015-11-17 00:04:40                 晚安 妞        ...
  • dlf123321
  • dlf123321
  • 2015年11月18日 13:47
  • 3053

xml与xsl的转换

xml文档的一大特点是可以向多种格式的文档进行转换。比如,从一种逻辑结构的xml向另一种逻辑结构的xml转换,或是转换为可浏览的html文档等。这种xml文档的数据格式转换功能由可扩展样式单语言(xs...
  • lvyuan30276
  • lvyuan30276
  • 2016年01月05日 23:28
  • 1268

java将XML数据转换成Map

package com.isoftstone.pcis.tool; import java.io.StringReader; import java.util.*; import org.dom...
  • onlyonexhj
  • onlyonexhj
  • 2013年05月31日 10:35
  • 2130

XML和对象相互转换的方法

最近项目中需要用到XML配置一些信息,百度了一下,发现使用XStream相对简单,简单配置一下即可进行转换,方法如下: 首先添加依赖 com.thoughtworks.xs...
  • dreamfly88
  • dreamfly88
  • 2016年09月19日 18:02
  • 2921

java工具---将txt文件转成xml格式的文件

通过java,将txt文档的内容转化成xml格式的内容,并且xml格式比较标准,可以通过调用相关的jar包来实现...
  • u010454729
  • u010454729
  • 2014年04月29日 20:52
  • 2338

Unity 3D 读入本地 xml 文件

youtube 视频教程里的源码,载入 XML 并显示在 TEXT 控件上
  • ouyang80
  • ouyang80
  • 2016年10月16日 10:10
  • 411
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于加载外部xml文件转换成xml时出错!
举报原因:
原因补充:

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