2009-07-20 5 views
0

Chaque fois que je charge une page de blogger via un objet XML dans actionscript 2, presque tout le contenu de la page disparaît comme par magie. Je suppose que puisque les pages sont dans xhtml cela devrait fonctionner. Voici ce que je reçois si je tente de charger le blog de Steve Yegge:Chargement d'une page Blogger dans un objet XML dans ActionScript entraîne des balises manquantes

<!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> 

Faites défiler jusqu'à la fin et vous pouvez voir que la balise entière <body> est manquante. Des suggestions sur la façon de résoudre ce problème?

Edit: Voici un code rapide afin que vous puissiez tester vous-même:

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

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

Répondre

1

Eh bien, sur l'inspection rapide, il ressemble à votre page ne vit pas jusqu'à c'est doctype, ce qui est est probablement à l'origine du problème. En général, il ne semble pas que ce soit du XML valide, c'est pourquoi ActionScript est en train de s'étouffer. Je viens de faire un test rapide avec une autre page XHTML stricte qui valide et j'ai pu gratter la structure complète du nœud sans problème.

Si vous ne pouvez pas corriger le balisage, vous pouvez regarder dans l'événement onData de la classe XML AS2 - il vous permet de récupérer les données brutes avant l'analyse. Cela peut vous permettre de sortir le contenu dont vous avez besoin d'une manière différente.

+0

La page que j'utilisais à titre d'exemple n'était pas à moi le blog d'un autre programmeur. – Anton

Questions connexes