DOMノードリスト
XML DOM ノードリスト
ノードリストは、getElementsByTagName() メソッドと childNodes 属性によって返されます。
試してみる - 例
以下の例では、XML ファイル Books.xml を使用します。
外部 JavaScript にある関数loadXMLDoc()は、XML ファイルをロードするために使用されます。
最初の <title> 要素からテキストを取得する
この例では、getElementsByTagName() メソッドを使用して、「books.xml」の最初の <title> 要素からテキストを取得します。
length 属性を使用してノードを走査する
この例では、ノード リストと length 属性を使用して、「books.xml」内のすべての <title> 要素を走査します。
要素の属性を取得する
この例では、属性リストを使用して、「books.xml」の最初の <book> 要素から属性を取得します。
DOM ノード リスト
childNodes や getElementsByTagName() などの属性またはメソッドを使用すると、ノード リスト オブジェクトが返されます。
ノード リスト オブジェクトは、XML と同じ順序でノードのリストを表します。
ノードリスト内のノードには、0から始まるインデックス番号を使用してアクセスされます。
次の画像は、「books.xml」の <title> 要素のノード リストを表します。
次のコード スニペットは、loadXMLDoc() を使用して「books.xml」を xmlDoc にロードし、「books.xml」を返します。タイトル要素のノードリスト:
x=xmlDoc.getElementsByTagName("title");
上記のステートメントの実行後、x はノードリストです物体 。
次のコード スニペットは、ノード リスト (x) の最初の <title> 要素からテキストを返します。インスタンス
上記のステートメントを実行すると、txt = "まいにちイタリアン" となります。
ノードリストの長さ
ノードリストオブジェクトはそれ自体を更新し続けます。要素が削除または追加されると、リストは自動的に更新されます。
ノード リストの長さプロパティは、リスト内のノードの数です。
次のコード スニペットは、loadXMLDoc() を使用して「books.xml」を xmlDoc にロードし、「books.xml」内の <title> 要素の数を返します。
x=xmlDoc.getElementsByTagName('title').length;
上記のステートメントが実行されると、x = 4 になります。
ノード リストの長さを使用して、リスト内のすべての要素を走査できます。
次のコード スニペットは、length 属性を使用して <title> 要素のリストを反復処理します:
Instance
<!DOCTYPE html> <html> <head> <script src="loadxmldoc.js"> </script> </head> <body> <script> xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("title"); txt=x[0].childNodes[0].nodeValue; document.write(txt); </script> </body> </html>
Run Instance»
オンラインの例を表示するには、[Run Instance] ボタンをクリックします
アウトプット:explanationの例すべての <title> 要素のテキスト ノードから
- DOM 属性リスト (名前付きノード マップ)
要素ノードのattributes 属性は、属性ノードのリストを返します。
これは名前付きノード マップと呼ばれ、メソッドとプロパティのいくつかの違いを除いてノード リストに似ています。 属性リストは常に更新されます。このリストは、属性が削除または追加されると自動的に更新されます。
次のコード スニペットは、loadXMLDoc() を使用して「books.xml」を xmlDoc にロードし、「books.xml」の最初の <book> 要素の属性ノード リストを返します。 ");x=xmlDoc.getElementsByTagName('book')[0].attributes;
次のコード スニペットは、本の「カテゴリ」属性の値とその属性の数を表示します:
インスタンス<!DOCTYPE html> <html> <head> <script src="loadxmldoc.js"> </script> </head> <body> <script> xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName('title'); for (i=0;i<x.length;i++) { document.write(x[i].childNodes[0].nodeValue); document.write("<br>"); } </script> </body> </html>
インスタンスの実行»
1
例の説明:
loadXMLDoc()を使用して「books.xml」をxmlDocにロードします
最初の<book>要素のすべての属性のリストを保存するには、x変数を設定します。
「category」属性の値を出力
属性リストの長さを出力