2009-05-01 2 views
0

Ich habe eine ASPX-Seite erstellt, die dynamisch eine XML-Zeichenfolge erstellt und sie zurück an den Client sendet.Lesen von XML in Flash von einer ASPX Seite

 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()); 
    } 

Es schafft gültige XML und wenn ich diesen Code in einen statischen .xml der Blitz kann es feine Datei speichern lesen, obwohl, wenn es versucht, es von der ASPX zu lesen es mit „1090 XML-Parser Ausfall fehl: element ist missgebildet ".

Ich habe keine HTTP-Komprimierung auf.

Flash-Code.

//---------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); 

Irgendwelche Ideen?

+0

Wie sieht Ihre fileLoaded-Funktion aus? – quoo

+0

Ihr Flash-Code zeigt nicht an, was er tatsächlich mit der Antwort macht. Sie erstellen ein XML-Objekt, tun aber nichts damit. Können Sie zeigen, wo Sie mit den Daten arbeiten, die Sie zurückbekommen? Das ist wahrscheinlich der Fehler. – Herms

+0

oh guter Punkt - Ihre var myXML: XML = new XML(); Linie macht nicht viel. Es ist auch XML.ignoreWhitespace - es ist eine statische Eigenschaft. – quoo

Antwort

1

Es klingt wie wenn der Blitz ruft die aspx Seite es eine andere Antwort bekommt als Sie erwarten, versuchen Sie diese Funktion fileLoaded mit:

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); 
    } 
} 

das sollte hoffentlich geben Sie ein paar mehr Informationen darüber, was falsch läuft.

0

Versuchen Sie dies mit

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