2009年12月22日

jQueryでiFrame内のXML Documentを指定する方法

iframeでXMLを読み込んた場合、XMLのdocumentを正しく指定すれば
普通のDOM操作のようにXMLに対して操作できます。
FirefoxとIEの取り方が異なるため、その方法を紹介します。

サンプル

こんなXMLファイルの中の各name要素のテキストを取るとします。

<?xml version=”1.0″ encoding=”utf-8″ ?>
<games>
    <game>World of Warcraft</game>
    <game>Warcraft III</game>
    <game>StarCraft</game>
    <game>Final Fantasy</game>
</games>

IEの場合XMLDocument

$("iframe").attr("src",xmlUrl).one("load", function(){
    var xmlDocument = this.contentWindow.document.XMLDocument;
    $(xmlDocument).find("game").each(function(){
        var game = $(this).text();
       // ほかの処理
    });
});

Firefoxの場合ActiveElement

$("iframe").attr("src",xmlUrl).one("load", function(){
    var xmlDocument = this.contentWindow.document.ActiveElement;
    $(xmlDocument).find("game").each(function(){
        var game = $(this).text();
       // ほかの処理
    });
});

xmlUrlは実際XMLファイルのURLです。

参考サイト

下記の英語掲示板で見つけたんです。
How to Get XML Document from iFrame

Share on Twitter Share the post
Qihuan Piao

朴 起煥

東京で働いている「外人歴」9年のソフトウェア「ライター」。いつの間にか納豆が食えるようになり、これで日本に慣れきったと思いきやまだまだ驚きが続いてる。読んだり書いたりするのが好きで、自身の経験や本から得た「何か」をここに書き出してる。最近古本屋にハマってる。

他にも英語中国語で書いてます、よろしければチェックしてみてください。