2009/06/17 | 17:51 pm
xml and namespace
RSS 1.0 を読もうとしたらエラー出たス。
RSS 2.0 の仕様だと、<xml>で始まるのだけれども、
RSS 1.0 の仕様でいくと<rdf>で始まるのでちょいと勝手が違うようです。
なので、default xml namespace して rdf を認識(??)させてあげないとダメみたい。
注) ↓ は、BulkLoader 使って読み込んだあとです。
var feedData:XML = bulkLoader.getXML( "feed_data" );
var feedList:XMLList;
// RSS 1.0 のときと RSS 2.0 のときで分ける
if(feedData.name() == "http://www.w3.org/1999/02/22-rdf-syntax-ns#::RDF") {
var ns:Namespace = new Namespace("http://purl.org/rss/1.0/");
default xml namespace = ns;
feedList = feedData.item;
} else {
feedList = feedData.channel.item;
}
っで、これでも Runtime Error #1025 喰らったのでさらに調べると
どーやら、ローカル変数で default xml namespace させるとダメのようです。
private var ns:Namespace = new Namespace("http://purl.org/rss/1.0/");
private function onLoaded( e:Event ):void {
var feedData:XML = bulkLoader.getXML( "feed_data" );
var feedList:XMLList;
// RSS 1.0 のときと RSS 2.0 のときで分ける
if(feedData.name() == "http://www.w3.org/1999/02/22-rdf-syntax-ns#::RDF") {
default xml namespace = ns;
feedList = feedData.item;
} else {
feedList = feedData.channel.item;
}
}
もしくは変数宣言しないでそのまま記述しても大丈夫
private function onLoaded( e:Event ):void {
var feedData:XML = bulkLoader.getXML( "feed_data" );
var feedList:XMLList;
// RSS 1.0 のときと RSS 2.0 のときで分ける
if(feedData.name() == "http://www.w3.org/1999/02/22-rdf-syntax-ns#::RDF") {
default xml namespace = new Namespace("http://purl.org/rss/1.0/");
feedList = feedData.item;
} else {
feedList = feedData.channel.item;
}
}
CATEGORY
POSTED
jam


COMMENT
0 Comment