2009-07-20 2 views
0

Immer wenn ich eine Blogger-Seite über ein XML-Objekt in ActionScript 2 lade, verschwinden fast alle Inhalte der Seite auf magische Weise. Ich würde annehmen, dass dies funktionieren sollte, da die Seiten in xhtml sind. Hier ist, was ich, wenn ich versuche, Steve Yegge Blog zu laden:Das Laden einer Blogger-Seite in einem XML-Objekt in ActionScript führt zu fehlenden Tags

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xmlns:b="http://www.google.com/2005/gml/b" xmlns:data="http://www.google.com/2005/gml/data" xmlns:expr="http://www.google.com/2005/gml/expr"><head><script type="text/javascript">(function() { var a=window;function f(e){this.t={};this.tick=function(d,b,c){var i=c?c:(new Date).getTime();this.t[d]=[i,b]};this.tick(&quot;start&quot;,null,e)}var g=new f;a.jstiming={Timer:f,load:g};try{a.jstiming.pt=a.external.pageT}catch(h){};a.tickAboveFold=function(e){var d,b=e,c=0;if(b.offsetParent){do c+=b.offsetTop;while(b=b.offsetParent)}d=c;d</script></head></html> 

Blättern Sie zu Ende und Sie können sehen, dass die gesamte <body> Tag fehlt. Irgendwelche Vorschläge, wie Sie das beheben können?

Edit: Hier sind einige schnelle Code, so dass Sie es selbst testen können:

var foo:XML = new XML(); 
foo.ignoreWhite = true; 

foo.onLoad = function(success:Boolean) { 
    trace(foo.toString()); 
} 
foo.load("http://steve-yegge.blogspot.com/"); 

Antwort

1

Nun, auf schnelle Inspektion sieht es aus wie Ihre Seite leben bis nicht es ist Doctype, das, was ist verursacht wahrscheinlich das Problem. Im Allgemeinen sieht es nicht wie gültiges XML aus, weshalb ActionScript daran erstickt. Ich habe gerade einen kurzen Test mit einer anderen strengen XHTML-Seite gemacht, die validiert hat, und ich konnte ohne Probleme die gesamte Knotenstruktur durchforsten.

Wenn Sie das Markup nicht reparieren können, sollten Sie sich das onData-Event der AS2-XML-Klasse ansehen - es ermöglicht Ihnen, die Rohdaten vor dem Parsing zu erfassen. Dadurch können Sie den Inhalt, den Sie benötigen, auf andere Weise herausziehen.

+0

Die Seite, die ich als Beispiel verwendet habe, gehört nicht zu meinem Blog eines anderen Programmierers. – Anton

Verwandte Themen