XML DOM パーサ
ほとんどのブラウザは、入力や操作をするために組込みのXMLパーサを持っています。
パーサは、XMLをJavaScriptがアクセス可能なオブジェクト(XML DOM)に変換します。
XML パーサ
XML DOMには、XMLのノードをトラバース、アクセス、挿入及び削除するメソッド(関数)が含まれています。
しかし、アクセスや操作をする前に、XML文書をXML DOM オブジェクトへロードしなければなりません。
パーサはXMLを読込んで、JavaScriptからアクセスできるXML DOMオブジェクトに変換します。
ほとんどのブラウザは、組込みのXMLパーサを持っています。
XML文書のロード
次のJavaScriptは、XML文書("books.xml")をパーサにロードします:
例
if (window.XMLHttpRequest)
{
xhttp=new XMLHttpRequest();
}
else // Internet Explorer 5/6
{
xhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xhttp.open("GET","books.xml",false);
xhttp.send("");
xmlDoc=xhttp.responseXML;
|
Try it yourself »
|
コードの説明:
- XMLHTTPオブジェクトを作成します
- XMLHTTPオブジェクトをオープンします
- XML HTTPリクエストをサーバに送ります
- XML DOMオブジェクトとしてレスポンスを設定します
XMLストリングのロード
次のコードは、XMLストリングをロードしパースします:
例
|
if (window.DOMParser)
{
parser=new DOMParser();
xmlDoc=parser.parseFromString(text,"text/xml");
}
else // Internet Explorer
{
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.loadXML(text);
}
|
Try it yourself »
|
注: Internet Explorerは、XMLストリングのパースに loadXML() メソッドを使うのに対し、他のブラウザは DOMParser オブジェクトを使います。
ドメインをまたがるアクセス
セキュリティ上の理由で、最近のブラウザはドメインをまたがったアクセスを許しません。
これは、ロードしようとするWebページとXMLファイルは、同じサーバに置かなければならないことを意味しています。
もしWebページの1つで、上記の例を使いたいときは、ロードするXMLファイルは、自身のサーバに置かれなければなりません。
|