2009-05-01 42 views
0

ダイナミックにXML文字列を作成してクライアントに返信するaspxページを作成しました。ASPXページからの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を作成し、それがASPXからそれを読み取ろうとしたとき、私は静的にこのコードを保存したときにフラッシュが罰金それを読むことができます.xmlファイル、しかしそれは「1090 XMLパーサの失敗で失敗:要素不正な形式です "。

私はHTTP圧縮を持っていません。

フラッシュコード。

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

うまくいけばべき

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

fileLoaded関数はどのように見えますか? – quoo

+0

あなたのフラッシュコードは、実際に応答で何をしているのかを示していません。あなたはXMLオブジェクトを作成していますが、何もしません。戻ったデータを実際に処理する場所を表示できますか?それはおそらくエラーの原因です。 – Herms

+0

ああ良い点 - あなたのvar myXML:XML =新しいXML();ラインは実際にはあまり効果がありません。 またXML.ignoreWhitespaceです。これは静的なプロパティです。 – quoo

答えて

1

を使用してみてください間違っていることについて何か情報を与えてくれる。

0

は、フラッシュは、あなたが期待しているよりも、それは異なる応答を取得aspxページを呼び出したときに、このfileLoaded機能を使用してみてくださいようですね。この

"<![CDATA[" and ends with "]]>" 
関連する問題