Rhino E4X

スポンサーリンク

Rhino(1.7R2) で E4X を使ってみた。

livedoor 天気情報 から、天気予報の部分だけ抜き出す。

var text = readUrl('http://weather.livedoor.com/forecast/webservice/rest/v1?city=113&day=tomorrow');

// <?xml version=...?>のパースをサポートしていないので
// https://developer.mozilla.org/ja/E4X
var text = text.replace(/^<\?xml\s+version\s*=\s*(["'])[^\1]+\1[^?]*\?>/, "");

var xml = new XML(text);
xml.telop; // うまくいかなかった
xml.*;     // これもダメ

var xml2 = new XML('<root>' + text + '</root>');
xml2.lwws.telop;  // OK

なんでか、そのままだとうまく取り出せなかった。
ルート要素を変えてあげればうまくいった。XMLの形式でなにかあるんだろうか。