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関数

XMLDOM-ノードへのアクセス


DOMを使用すると、XMLドキュメント内のすべてのノードにアクセスできます。


自分で試してみてください-例

以下の例では、XMLファイルbooks.xmlを使用しています。


getElementsByTagName()メソッドを使用して、「books.xml」の3番目の<title>要素を取得します。


を使用して、「books.xml」内のすべての<title>要素をループします。


確認するnodeTypeプロパティを使用して、「books.xml」のルート要素のノードタイプを取得します。


nodeTypeプロパティを使用して、「books.xml」内の要素ノードのみを処理します。


nodeTypeプロパティとnextSiblingプロパティを使用して、「books.xml」の要素ノードを処理します。

××

ヘッダ


ノードへのアクセス

次の3つの方法でノードにアクセスできます。

1. getElementsByTagName()メソッドを使用する

2.ノードツリーをループ(トラバース)する。

3.ノードの関係を使用して、ノードツリーをナビゲートします。


getElementsByTagName()メソッド

getElementsByTagName()は、指定されたタグ名を持つすべての要素を返します。

構文

node.getElementsByTagName("tagname");

次の例では、x要素の下にあるすべての<title>要素を返します。

x.getElementsByTagName("title");

上記の例では、xノードの下の<title>要素のみが返されることに注意してください。XMLドキュメント内のすべての<title>要素を返すには、次を使用します。

xmlDoc.getElementsByTagName("title");

ここで、xmlDocはドキュメント自体(ドキュメントノード)です。



DOMノードリスト

getElementsByTagName()メソッドはノードリストを返します。ノードリストはノードの配列です。

x = xmlDoc.getElementsByTagName("title");

xの<title>要素には、インデックス番号でアクセスできます。3番目の<title>にアクセスするには、次のように記述します。

y = x[2];

注:インデックスは0から始まります。

ノードリストの詳細については、このチュートリアルの後の章で学習します。


DOMノードリストの長さ

lengthプロパティは、ノードリストの長さ(ノードの数)を定義します。

lengthプロパティを使用して、ノードリストをループできます。

var x = xmlDoc.getElementsByTagName("title");

for (i = 0; i <x.length; i++) {
  // do something for each node
  }

ノードタイプ

XMLドキュメントのdocumentElementプロパティはルートノードです。

ノードのnodeNameプロパティは、ノードの名前です。

ノードのnodeTypeプロパティは、ノードのタイプです。

このチュートリアルの次の章で、ノードのプロパティについて詳しく学習します。


トラバースノード

次のコードは、ルートノードの子ノード(要素ノードでもある)をループします。

txt = "";
x = xmlDoc.documentElement.childNodes;

for (i = 0; i <x.length; i++) {
  // Process only element nodes (type 1)
  if (x[i].nodeType == 1) {
    txt += x[i].nodeName + "<br>";
  }
}

説明された例:

  1. 「 books.xml」をxmlDocにロードしたとします。
  2. ルート要素の子ノードを取得します(xmlDoc)
  3. 子ノードごとに、ノードタイプを確認します。ノードタイプが「1」の場合、それは要素ノードです
  4. 要素ノードの場合はノード名を出力します

ノード関係のナビゲート

次のコードは、ノードの関係を使用してノードツリーをナビゲートします。

x = xmlDoc.getElementsByTagName("book")[0];
xlen = x.childNodes.length;
y = x.firstChild;

txt = "";
for (i = 0; i <xlen; i++) {
  // Process only element nodes (type 1)
  if (y.nodeType == 1) {
    txt += y.nodeName + "<br>";
  }
  y = y.nextSibling;
}

説明された例:

  1. 「 books.xml」をxmlDocにロードしたとします。
  2. 最初のbook要素の子ノードを取得します
  3. 「y」変数を最初のbook要素の最初の子ノードに設定します
  4. 子ノードごとに(最初の子ノード「y」から開始):
  5. ノードタイプを確認してください。ノードタイプが「1」の場合、それは要素ノードです
  6. 要素ノードの場合はノード名を出力します
  7. 「y」変数を次の兄弟ノードに設定し、ループを再度実行します