ホーム HTML CSS XML JAVASCRIPT   PHP SQL MORE...   リファレンス 事例集    

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ファイルは、自身のサーバに置かれなければなりません。


« 前章へ 次章へ »