XMLパーサー
すべての主要なブラウザーには、XMLにアクセスして操作するための組み込みのXMLパーサーがあります。
XMLパーサー
XML DOM(Document Object Model)は、XMLにアクセスして編集するためのプロパティとメソッドを定義します。
ただし、XMLドキュメントにアクセスする前に、XMLDOMオブジェクトにロードする必要があります。
最新のブラウザにはすべて、テキストをXMLDOMオブジェクトに変換できるXMLパーサーが組み込まれています。
テキスト文字列の解析
この例では、テキスト文字列をXML DOMオブジェクトに解析し、JavaScriptを使用してそこから情報を抽出します。
例
<html>
<body>
<p id="demo"></p>
<script>
var text, parser, xmlDoc;
text = "<bookstore><book>" +
"<title>Everyday Italian</title>" +
"<author>Giada De Laurentiis</author>" +
"<year>2005</year>" +
"</book></bookstore>";
parser = new DOMParser();
xmlDoc = parser.parseFromString(text,"text/xml");
document.getElementById("demo").innerHTML =
xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue;
</script>
</body>
</html>
例の説明
テキスト文字列が定義されています。
text = "<bookstore><book>" +
"<title>Everyday Italian</title>" +
"<author>Giada De Laurentiis</author>" +
"<year>2005</year>" +
"</book></bookstore>";
XMLDOMパーサーが作成されます。
parser = new DOMParser();
パーサーは、テキスト文字列を使用して新しいXMLDOMオブジェクトを作成します。
xmlDoc = parser.parseFromString(text,"text/xml");
InternetExplorerの古いバージョン
古いバージョンのInternetExplorer(IE5、IE6、IE7、IE8)は、DOMParserオブジェクトをサポートしていません。
古いバージョンのInternetExplorerを処理するには、ブラウザがDOMParserオブジェクトをサポートしているかどうかを確認するか、ActiveXObjectを作成します。
例
if (window.DOMParser) {
// code for modern browsers
parser = new DOMParser();
xmlDoc = parser.parseFromString(text,"text/xml");
}
else {
// code for old IE browsers
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = false;
xmlDoc.loadXML(text);
}
XMLHttpRequestオブジェクト
XMLHttpRequestオブジェクトには、XMLパーサーが組み込まれています。
responseTextプロパティは、応答を文字列として返します。
responseXMLプロパティは、応答をXMLDOMオブジェクトとして返します。
応答をXMLDOMオブジェクトとして使用する場合は、responseXMLプロパティを使用できます。
例
ファイルcd_catalog.xmlを要求し、その応答をXMLDOMオブジェクトとして使用します。
xmlDoc = xmlhttp.responseXML;
txt = "";
x = xmlDoc.getElementsByTagName("ARTIST");
for (i = 0; i < x.length; i++) {
txt += x[i].childNodes[0].nodeValue + "<br>";
}
document.getElementById("demo").innerHTML = txt;