2009-05-01 43 views
0

我创建了一个aspx页面,它动态地创建一个xml字符串并将其发送回客户端。从ASPX页面读取Flash中的XML

 protected void Page_Load(object sender, EventArgs e) 
    { 
     Response.Clear(); 
     Response.ContentType = "text/xml"; 
     Response.ContentEncoding = Encoding.UTF8; 

     var flashAssets = Asset.GetScrollingFlashAssets(); 

     var xmlResponse = new StringBuilder(@"<?xml version=""1.0"" encoding=""UTF-8"" ?><assets>"); 
     flashAssets.ForEach(asset => xmlResponse.Append(@"<asset>handlers/ImageHandler.ashx?liAssetID=" + asset.AssetID + "</asset>")); 
     xmlResponse.Append("</assets>"); 
     Response.Write(xmlResponse.ToString()); 
    } 

它创建有效的XML,当我这个代码保存为静态.xml文件闪光灯可以精细阅读,但是当它试图从它失败,“1090 XML分析器失败的ASPX阅读:元是畸形的“。

我没有http压缩。

Flash代码。

//---------loading the external xml file------- 
var urlRequest:URLRequest = new URLRequest("../xml/CaseStudyFlashAssets.aspx"); 
var urlLoader:URLLoader = new URLLoader(); 
var myXML:XML = new XML(); 
var xmlList:XMLList; 
myXML.ignoreWhitespace = true; 
urlLoader.addEventListener(Event.COMPLETE,fileLoaded); 
urlLoader.load(urlRequest); 

任何想法?

+0

你的fileLoaded函数是什么样的? – quoo 2009-05-01 15:46:05

回答

1

这听起来当闪光灯调用aspx页面它会比你预期不同的反应,尝试使用此功能fileLoaded像:

public function fileLoaded(event:Event):void{ 
    trace('urlLoader.data is ' + urlLoader.data); 
    try{ 
      var xmlData:XML = XML(urlLoader.data); 
    } catch (e:Error) { 
      trace('Error creating XML: ' + e); 
    } 
} 

它应该有希望给你一些关于最新错误的更多信息。

0

尝试使用此

"<![CDATA[" and ends with "]]>"