XML DOM ノード値の取得

nodeValue 属性はノードのテキスト値を取得するために使用されます。

getAttribute() メソッドは属性の値を返します。

以下の例では、XMLファイルを使用します books.xml

関数 loadXMLDoc()、外部のJavaScriptに配置されており、XMLファイルの読み込みに使用されます。

要素の値を取得
この例では、getElementsByTagname() を使用して "books.xml" 最初の <title> 要素を取得します。
属性の値を取得
この例では、getAttribute() メソッドを使用して "books.xml" 最初の <title> 要素の "lang" 属性の値を取得します。

要素の値を取得

DOMでは、各成分はノードです。要素ノードにはテキスト値がありません。

要素ノードのテキストは子ノードに保存されます。このノードはテキストノードと呼ばれます。

要素テキストを取得する方法は、この子ノード(テキストノード)の値を取得することです。

要素値を取得

getElementsByTagName() メソッドは指定されたタグ名を持つすべての要素のノードリストを返します。その要素の順序は、ソースドキュメント内での出現順序です。

以下のコードは、 loadXMLDoc() "books.xml「」を xmlDoc に読み込んで、最初の <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 = "Harry Potter"

TIY

すべての <title> 要素を巡回します:TIY

属性の値を取得

DOMでは、属性もノードです。要素ノードとは異なり、属性ノードはテキスト値を持っています。

属性の値を取得する方法は、そのテキスト値を取得することです。

getAttribute() メソッドまたは属性ノードの nodeValue 属性を使用してこのタスクを完了できます。

属性値を取得 - getAttribute()

getAttribute() メソッドは属性の値を返します。

以下のコードは、最初の <title> 要素の "lang" 属性のテキスト値を検索します:

xmlDoc=loadXMLDoc("books.xml");
txt=xmlDoc.getElementsByTagName("title")[0].getAttribute("lang");

結果:txt = "en"

例説明:

  • 使用することで loadXMLDoc() "books.xmlxmlDoc に "
  • txt 変数に最初の title ノードの "lang" 属性の値を設定します

TIY

すべての <book> 要素をループし、その "category" 属性を取得します:TIY

属性値の取得 - getAttributeNode()

getAttributeNode() メソッドは属性ノードを返します。

以下のコードは最初の <title> ノードの "lang" 属性のテキスト値を検索します:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title")[0].getAttributeNode("lang");
txt=x.nodeValue;

結果:txt = "en"

例説明:

  • 使用することで loadXMLDoc() "books.xmlxmlDoc に "
  • 最初の <title> ノードの "lang" 属性を取得します
  • txt 変数に属性の値を設定します

TIY

すべての <book> 要素をループし、その "category" 属性を取得します:TIY