XML DOM ノード値の取得
nodeValue プロパティは、ノードのテキスト値を取得するのに使用します。
getAttribute() メソッドは、属性の値を返します。
要素の値を取得
DOM においては、すべてがノードです。 要素ノードは、テキスト値を持ちません。
要素ノードのテキストは、子ノードに格納されます。 このノードを、テキストノードと言います。
要素のテキストを取得する方法は、子ノード(テキストノード)の値を取得することです。
要素値の取得
getElementsByTagName() メソッドは、ソース文書への出現順に指定のタグ名を持つ全要素のノードリストを返します。
以下のコードは、loadXMLDoc() を使用して xmlDoc に "books.xml" をロードし、最初の <title> 要素を取出します:
xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title")[0]; |
childNodes プロパティは、子ノードのリストを返します。 <title> 要素は1つだけ子ノードを持っています。 それがテキストノードです。
以下のコードは、<title> 要素のテキストノードを取出します:
x=xmlDoc.getElementsByTagName("title")[0];
y=x.childNodes[0]; |
nodeValue プロパティは、テキストノードのテキスト値を返します:
例
x=xmlDoc.getElementsByTagName("title")[0];
y=x.childNodes[0];
txt=y.nodeValue;
|
試してください »
|
結果: txt = "Everyday Italian"
全ての<title>要素を通るループ:
Try it yourself
属性の値を取得
DOMでは、属性はノードです。 要素ノードと違い、属性ノードはテキスト値を持っています。
属性の値を取得する方法は、そのテキスト値を取得することです。
これは、getAttribute() メソッドを使用するか、属性ノード nodeValue プロパティを使用して取得することができます。
属性値の取得 - getAttribute()
getAttribute() メソッドは、属性値を返します。
以下のコードは、最初の <title> 要素の "lang" 属性のテキスト値を取出します:
例
xmlDoc=loadXMLDoc("books.xml");
txt=xmlDoc.getElementsByTagName("title")[0].getAttribute("lang");
|
試してください »
|
結果: txt = "en"
例の説明:
- loadXMLDoc() を用い、xmlDoc に "books.xml" をロードします
- txt変数に、最初のタイトル要素ノードの "lang" 属性値を設定します
すべての <book> 要素を通るループを行い、"category" 属性を取得します:
試してください
属性値の取得 - getAttributeNode()
getAttributeNode() メソッドは、属性ノードを返します。
以下のコードは、最初の "lang" 要素の <title> 属性のテキスト値を取出します:
例
xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title")[0].getAttributeNode("lang");
txt=x.nodeValue;
|
試してください »
|
結果: txt = "en"
例の説明:
- loadXMLDoc() を用い、xmlDoc に "books.xml" をロードします
- 最初の <title> 要素ノードの "lang" 属性ノードを取得します
- txt 変数に属性の値を設定します
すべての <book> 要素を通るループを行い、"category" 属性を取得します:
試してください
|