XMLチュートリアル

XMLホーム XMLの紹介 XML使用方法 XMLツリー XML構文 XML要素 XML属性 XML名前空間 XML表示 XML HttpRequest XMLパーサー XML DOM XML XPath XML XSLT XML XQuery XML XLink XMLバリデーター XML DTD XMLスキーマ XMLサーバー XMLの例 XMLクイズ XML証明書

XML AJAX

AJAXの紹介 AJAX XMLHttp AJAXリクエスト AJAX応答 AJAXXMLファイル AJAX PHP AJAX ASP AJAXデータベース AJAXアプリケーション AJAXの例

XML DOM

DOMの紹介 DOMノード DOMアクセス DOMノード情報 DOMノードリスト DOMトラバース DOMナビゲーション DOMは値を取得します DOM変更ノード DOM削除ノード DOM置換ノード DOM作成ノード DOM追加ノード DOMクローンノード DOMの例

XPathチュートリアル

XPathの概要 XPathノード XPath構文 XPath軸 XPath演算子 XPathの例

XSLTチュートリアル

XSLTの紹介 XSL言語 XSLT変換 XSLT <テンプレート> XSLT <値> XSLT <for-each> XSLT <ソート> XSLT <if> XSLT <選択> XSLT適用 クライアント上のXSLT サーバー上のXSLT XSLT Edit XML XSLTの例

XQueryチュートリアル

XQueryの紹介 XQueryの例 XQuery FLWOR XQuery HTML XQueryの用語 XQuery構文 XQuery追加 XQuery Select XQuery関数

XML DTD

DTDの紹介 DTDビルディングブロック DTD要素 DTD属性 DTD要素と属性 DTDエンティティ DTDの例

XSDスキーマ

XSDの概要 XSDハウツー XSD <スキーマ> XSD要素 XSD属性 XSDの制限

XSDコンプレックス

XSD要素 XSDが空です XSD要素のみ XSDテキストのみ XSD混合 XSDインジケーター XSD <任意> XSD <anyAttribute> XSD置換 XSDの例

XSDデータ

XSD文字列 XSD日付 XSD数値 XSDその他 XSDリファレンス

Webサービス

XMLサービス XML WSDL XML SOAP XML RDF XML RSS

参考文献

DOMノードタイプ DOMノード DOM NodeList DOM NamedNodeMap DOMドキュメント DOM要素 DOM属性 DOMテキスト DOM CDATA DOMコメント DOM XMLHttpRequest DOMパーサー XSLT要素 XSLT / XPath関数

×

Header

XMLDOMチュートリアル


XML DOM

DOM node tree

DOMとは何ですか?

DOMは、ドキュメントにアクセスして操作するための標準を定義しています。

「W3Cドキュメントオブジェクトモデル(DOM)は、プログラムとスクリプトがドキュメントのコンテンツ、構造、およびスタイルに動的にアクセスして更新できるようにする、プラットフォームおよび言語に依存しないインターフェイスです。」

HTML DOMは、HTMLドキュメントにアクセスして操作するための標準的な方法を定義します。HTMLドキュメントをツリー構造として表示します。

XML DOMは、XMLドキュメントにアクセスして操作するための標準的な方法を定義します。XMLドキュメントをツリー構造として表示します。

DOMを理解することは、HTMLまたはXMLを使用するすべての人にとって必須です。


HTML DOM

すべてのHTML要素には、HTMLDOMを介してアクセスできます。

この例では、id = "demo"のHTML要素の値を変更します。

<h1 id="demo">This is a Heading</h1>

<script>
document.getElementById("demo").innerHTML = "Hello World!";
</script>

この例では、HTMLドキュメントの最初の<h1>要素の値を変更します。

<h1>This is a Heading</h1>

<h1>This is a Heading</h1>

<script>
document.getElementsByTagName("h1")[0].innerHTML = "Hello World!";
</script>

注: HTMLドキュメントに<h1>要素が1つしかない場合でも、getElementsByTagName()メソッドは常に配列を返すため、配列インデックス[0]を指定する必要があります。

HTML DOMについては、 JavaScriptチュートリアル でさらに詳しく知ることができます



XML DOM

すべてのXML要素には、XMLDOMを介してアクセスできます。

XMLDOMは次のとおりです。

  • XMLの標準オブジェクトモデル
  • XMLの標準プログラミングインターフェイス
  • プラットフォームおよび言語に依存しない
  • W3C標準

言い換えると、XML DOMは、XML要素を取得、変更、追加、または削除する方法の標準です。


XML要素の値を取得する

このコードは、XMLドキュメントの最初の<title>要素のテキスト値を取得します。

txt = xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue;

XMLファイルのロード

以下の例で使用されているXMLファイルはbooks.xmlです。

この例では、「books.xml」をxmlDocに読み込み、books.xmlの最初の<title>要素のテキスト値を取得します。

<!DOCTYPE html>
<html>
<body>

<p id="demo"></p>

<script>
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
    myFunction(this);
    }
};
xhttp.open("GET", "books.xml", true);
xhttp.send();

function myFunction(xml) {
    var xmlDoc = xml.responseXML;
    document.getElementById("demo").innerHTML =
    xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue;
}
</script>

</body>
</html>

例の説明

  • xmlDoc-パーサーによって作成されたXMLDOMオブジェクト。
  • getElementsByTagName( "title")[0] -最初の<title>要素を取得します
  • childNodes [0] -<title>要素の最初の子(テキストノード)
  • nodeValue-ノードの値(テキスト自体)

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>

プログラミングインターフェース

DOMは、XMLをノードオブジェクトのセットとしてモデル化します。ノードには、JavaScriptまたは他のプログラミング言語でアクセスできます。このチュートリアルでは、JavaScriptを使用します。

DOMへのプログラミングインターフェイスは、設定された標準のプロパティとメソッドによって定義されます。

プロパティは、あるものと呼ばれることがよくあります(つまり、ノード名は「本」です)。

メソッドは、実行されるものと呼ばれることがよくあります(つまり、「本」を削除します)。


XMLDOMプロパティ

これらはいくつかの典型的なDOMプロパティです:

  • x.nodeName-xの名前
  • x.nodeValue-xの値
  • x.parentNode-xの親ノード
  • x.childNodes-xの子ノード
  • x.attributes-xの属性ノード

注:上記のリストでは、xはノードオブジェクトです。


XMLDOMメソッド

  • x.getElementsByTagName(name)-指定されたタグ名を持つすべての要素を取得します
  • x.appendChild(node)-子ノードをxに挿入します
  • x.removeChild(node)-xから子ノードを削除します

注:上記のリストでは、xはノードオブジェクトです。