XML DOM ノードリスト
- 前のページ DOM ノード情報
- 次のページ DOM ノードの遍歴
ノードリストは、getElementsByTagName() メソッドと childNodes 属性により返されます。
例
以下の例では、XML ファイルを使用します。 books.xml。
関数 loadXMLDoc()、外部の JavaScript 内に位置し、XML ファイルの読み込みに使用されます。
- 最初の <title> 要素からテキストの取得
- この例では、"books.xml" 内の最初の <title> 要素からテキストを取得するために getElementsByTagName() メソッドを使用します。
- length 属性を使用してループ
- この例では、"books.xml" 内のすべての <title> 要素をループするためにノードリストと length 属性を使用します。
- 要素の属性の取得
- この例では、"books.xml" 内の最初の <title> 要素から属性を取得するために属性リストを使用します。
DOM ノードリスト
childNodes や getElementsByTagName() 属性やメソッドを使用すると、NodeList オブジェクトが返されます。
NodeList オブジェクトは、XML内の同じ順序で要素のリストを表します。
ノードリストの要素にアクセスするために、0から始まるインデックスを使用します。
以下の画像は"}}"を示しています。books.xml" title要素のノードリスト:

以下のコードスニペットは、以下のように使用されます: loadXMLDoc() " books.xml"をxmlDocに読み込んで、"books.xml" title要素のノードリストの一例:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("title");
上記の文の実行後、xはNodeListオブジェクトになります。
以下のコードスライスは、ノードリストxの最初の<title>要素からテキストを返します:
txt=x[0].childNodes[0].nodeValue;
上記の文の実行後、txt = "Everyday Italian"です。
Node List Length
NodeListオブジェクトは自身の更新を保持します。要素を削除したり追加したりすると、リストが自動的に更新されます。
ノードリストのlength属性は、リスト内のノードの数です。
以下のコードスニペットは、以下のように使用されます: loadXMLDoc() 把 "books.xml" xmlDocに読み込む、そして"books.xml"内の<title>要素の数を返します:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName('title').length;
上記の文の実行後、x = 4です。
ノードリストの長さは、リスト内のすべての要素をループするために使用できます。
以下のコードスライスはlength属性を使用して<title>要素のリストを巡回します:
xmlDoc=loadXMLDoc("books.xml"); //the x variable will hold a node list x=xmlDoc.getElementsByTagName('title'); for (i=0;i<x.length;i++) { document.write(x[i].childNodes[0].nodeValue); document.write("<br />"); }
出力:
Harry Potter Everyday Italian XQuery Kick Start Learning XML
例解:
- 使用することで loadXMLDoc() 把 "books.xml" xmlDocに読み込む
- すべてのtitle要素のノードリストを保存するx変数を設定
- すべての<title>要素のテキストノードの出力値
DOM Attribute List (Named Node Map)
要素ノードのattributes属性は属性ノードのリストを返します。
これはNamed Node Mapと呼ばれ、メソッドや属性に関するいくつかの違いを除いて、ノードリストに似ています。
属性リストは自身の更新を保持します。属性を削除したり追加したりすると、リストが自動的に更新されます。
以下のコードスニペットは、以下のように使用されます: loadXMLDoc() 把 "books.xml" 載入 xmlDoc 中,并从 "books.xml" 中的最初の <book> 要素から属性ノードのリストを返します:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName('book')[0].attributes;
以上のコードを実行すると、x.length は属性の数に等しくなり、x.getNamedItem() を使用して属性ノードを返すことができます。
以下のコードスニペットは、book の "category" 属性の値とその属性の数を示します:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("book")[0].attributes; document.write(x.getNamedItem("category").nodeValue); document.write("<br />" + x.length);
出力:
children 1
例解:
- 使用することで loadXMLDoc() 把 "books.xml" 載入 xmlDoc 中
- x に、最初の <book> 要素のすべての属性のリストを設定します
- "category" 属性の値を出力します
- 属性リストの長さを出力します
- 前のページ DOM ノード情報
- 次のページ DOM ノードの遍歴