最新のWeb開発のチュートリアル
 

XML DOM - アクセスノード


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


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

以下の例は、XMLファイルの使用のBooks.xmlを

ノード・リストにそのインデックス番号を使用してノードにアクセス
使用getElementsByTagName()第三取得する方法を<title>の要素"books.xml"

lengthプロパティを使用してノードをループ
すべてをループするために、lengthプロパティを使用して<title>要素"books.xml"

要素のノードタイプを参照してください。
でルート要素のノードタイプを取得するにはNodeTypeプロパティを使用してください"books.xml"

要素ノードをループ
で唯一のプロセス要素ノードにNodeTypeプロパティを使用してください"books.xml"

ノードの関係を使用して要素ノードをループ
で要素ノードを処理するためにNodeTypeプロパティとnextSiblingプロパティを使用してください"books.xml"

×

ヘッダ


ノードへのアクセス

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

使用することで1 getElementsByTagName()メソッドを

ループすることにより、2 (traversing)ノードツリー。

ノードツリーをナビゲートノードの関係を用いることによって3。


getElementsByTagName()メソッド

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

構文

node.getElementsByTagName("tagname");

次の例では、すべて返す<title>のx要素の下に要素を:

x.getElementsByTagName("title");

リターンだけ上記の例ことに注意してください<title>のxノードの下に要素を。 すべて戻すには<title> XMLドキュメントの使用中の要素を:

xmlDoc.getElementsByTagName("title");

XMLDOCはドキュメント自体である(document node)


DOMノードリスト

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

x = xmlDoc.getElementsByTagName("title");

<title> xの要素は、インデックス番号によってアクセスすることができます。 第三にアクセスするには<title>次のように書くことができます::

y = x[2];

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

このチュートリアルの後の章でノードリストの詳細を学びます。


DOMノードリストの長さ

lengthプロパティは、ノードリストの長さを定義(the number of nodes)

lengthプロパティを使用してノードリストを通じて次のことができますループ:

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

for (i = 0; i <x.length; i++) {
  // do something for each node
  }
»それを自分で試してみてください

ノード・タイプ

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

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. 各子ノードについて(starting with the first child node "y")
  5. ノードタイプを確認してください。 ノードタイプがある場合に"1"が要素ノードであります
  6. 出力ノードの名前を、それが要素ノードである場合
  7. 設定"y"次の兄弟ノードである変数を、再びループを実行します