つれずれなるままに… このページをアンテナに追加 RSSフィード Twitter

自身をYuichirouと名乗る謎の男が文字通り「つれれなるままに」書くよくわからん日記。

検索サイトから来た方、こんなページでゴメンナサイ。下にあるフォームに検索ワードを入れて検索すると、情報が得られるかも。

なお、タイトルに打ち間違いはありません。

1000 | 01 | 02 | 03 | 04 |
1504 | 01 | 02 | 03 |
2003 | 10 | 11 | 12 |
2004 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2005 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 |

2006年8月30日

[]GM_xmlhttpRequestのres.responseTextなどのXML文字列をDOMパースする正当なやり方 11:50 GM_xmlhttpRequestのres.responseTextなどのXML文字列をDOMパースする正当なやり方を含むブックマーク

(23:15追記)前振りを追加。

普通の一般的なXMLHttpRequestでは、受信したデータのプレーンテキストであるres.responseTextとともに、それをDOMパースしてくれたres.responseXMLの両方を提供してくれるが、Greasemonkeyの独自拡張であるGM_xmlhttpRequestではres.responseTextしか返してくれない。

そこで、例えば「はてなグリースモンキー - マイミクシィ日記を番組表に表示」では

GM_xmlhttpRequest({
  method: "GET",
  url: xml_url,
  onload: function(res) {
    var responseXML = document.createElement('div');
    responseXML.innerHTML = res.responseText;
    // do something 
  }
});

という感じでパースしていた。

しかし、調査してみたところDOMParserという文字通りのクラスに含まれるparseFromStringを使えばOK(というより使うべき?)でした。

GM_xmlhttpRequest({
  method: "GET",
  url: xml_url,
  onload: function(res) {
    var responseXML = (new DOMParser).parseFromString(res.responseText, "application/xml");

    // do something 
  }
});

[]『はてなRSS番組表はてなアンテナ更新情報を付けるGMスクリプト』をアップデート 12:13 『はてなRSSの番組表にはてなアンテナの更新情報を付けるGMスクリプト』をアップデートを含むブックマーク

  • デバッグ用の記述が残されていたので削除しました。_| ̄|○
  • GM_xmlhttpRequestで読み込んだRSSをDOMParser.parseFromStringでパースするようにしました。
  • その他細かいところを修正。
    • 「Manage User Script」で表示できる、スクリプトの説明文(@description)に簡単なミスがあったので修正しました。
    • GM_xmlhttpRequestする際のheaderで、"application/xml"をAcceptに加えました。
    • これにより、最新バージョンv1.2となります。

アップデートなど詳しくは専用ページ id:Yuichirou:10000409#rsstable_mix をご覧ください。