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>";
}
}
»それを自分で試してみてください 例を説明しました:
- あなたが「ロードしたとのBooks.xmlを XMLDOCに」
- ルート要素の子ノードを取得(xmlDoc)
- それぞれの子ノードの場合、ノードの種類を確認。 ノードタイプがある場合に"1"が要素ノードであります
- 出力ノードの名前を、それが要素ノードである場合
ナビゲートノードの関係
次のコードは、ノードの関係を使用してノードツリーをナビゲート:
例
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;
}
»それを自分で試してみてください 例を説明しました:
- あなたが「ロードしたとのBooks.xmlを XMLDOCに」
- 最初のbook要素の子ノードを取得します。
- 設定"y"最初のbook要素の最初の子ノードである変数を
- 各子ノードについて(starting with the first child node "y") :
- ノードタイプを確認してください。 ノードタイプがある場合に"1"が要素ノードであります
- 出力ノードの名前を、それが要素ノードである場合
- 設定"y"次の兄弟ノードである変数を、再びループを実行します