XMLに対するSafariのgetElementsByTagName()
JavaScriptでRSSをパースするスクリプトを作成してテストしていたら、Safariでだけうまく動作しなかった。
いろいろテストしてみたら、以下のような部分に問題があったことがわかった。
var siteLink = chnl.getElementsByTagName('link')[0].childNodes[0].nodeValue;
RSSのほうでは以下のような感じ。
-- 中略 -- <channel> <title>デジタルカタログ制作のデジパン</title> <atom:link href="http://www.digipan.jp/feed" rel="self" type="application/rss+xml" /> <link>http://www.digipan.jp</link> -- 中略 --
どうやら、Safariは名前空間atomのlink(atom:linkという要素)もgetElementsByTagName(‘link’)で拾ってしまうらしい。
IEやFirefoxではこのような問題はなかったが、どちらの解釈が正しいのかは不明。
そういえば、昔はFirefoxもこういう解釈だった気がするけど気のせい?




最近のコメント