XML DOM ノードリスト
- 前のページ DOM ノード情報
- 次のページ DOM ノードの遍歴
getElementsByTagName()
メソッドと childNodes
属性がノードのリストを返します。
DOM ノードリスト
次のように使用すると、 childNodes
または getElementsByTagName()
属性やメソッドを使用すると、NodeList オブジェクトが返されます。
NodeList オブジェクトは、XML内の順序と同じ順序でノードのリストを表します。
ノードリストのノードは、0から始まるインデックス番号でアクセスできます。
以下の図は示しています books.xml 中 <title> 要素のノードリスト:

「books.xml」が変数 xmlDoc に読み込まれていると仮定します。
このコードスライスは「books.xml」内の title 要素のノードリストを返します:
x = xmlDoc.getElementsByTagName("title");
上記の文を実行した後、x は NodeList オブジェクトになります。
以下のコードスニペットは、ノードリスト(x)内の最初の<title>要素のテキストを返します:
例
var txt = x[0].childNodes[0].nodeValue;
上記の文を実行すると、txt = "雅舍谈吃"になります。
ノードリストの長さ
NodeListオブジェクトは自身の更新を保持します。要素を削除したり追加したりすると、リストが自動的に更新されます。
ノードリストの length
属性はリスト内のノードの数です。
このコードは"books.xml"内の<title>要素の数を返します:
x = xmlDoc.getElementsByTagName('title').length;
上記の文を実行すると、x
の値が5です。
ノードリストの長さは、リスト内のすべての要素をループで巡回するために使用できます。
このコードは以下を使用して length
属性ループを使用して<title>要素リストを巡回します:
例
x = xmlDoc.getElementsByTagName('title'); xLen = x.length; for (i = 0; i <xLen; i++) { txt += x[i].childNodes[0].nodeValue) + " "; }
例解:
- 仮定 books.xml 読み込まれました
xmlDoc
中 - x変数を設定して、すべてのtitle要素のノードリストを保存します
- <title>要素からテキストノードの値を取得します
DOM属性リスト(ネームドノードマップ)
要素ノードの attributes
属性は属性ノードのリストを返します。
これはネームドノードマップ(named node map)と呼ばれ、ノードリストに似ていますが、メソッドや属性が異なります。
属性リストも常に最新の状態を保ちます。属性を削除したり追加したりすると、リストが自動的に更新されます。
このコードは、"books.xml"の最初の<book>要素から属性ノードリストを返します:
x = xmlDoc.getElementsByTagName('book')[0].attributes;
上記のコードを実行すると、x.length
属性の数に等しく、以下を使用できます x.getNamedItem()
属性ノードを返します。
このコードは、最初の本の"category"属性の値と属性の数を取得します:
例
x = xmlDoc.getElementsByTagName("book")[0].attributes; txt = x.getNamedItem("category").nodeValue + " " + x.length;
例解:
- 仮定 books.xml 読み込まれた
xmlDoc
中 - 最初の <book> 要素のすべての属性のリストを保存するために x 変数を設定する
- "category" 属性の値および属性リストの長さを取得する
- 前のページ DOM ノード情報
- 次のページ DOM ノードの遍歴