XML DOM ノード値の取得
- 前のページ DOM ノードの定位
- 次のページ DOM ノードの変更
nodeValue
属性はノードのテキスト値を取得するために使用されます。
getAttribute()
メソッドは属性の値を返します。
要素の値を取得する
DOMでは、すべてがノードです。要素ノードにはテキスト値がありません。
要素ノードのテキスト値は子ノードに格納されます。このノードはテキストノードと呼ばれます。
要素のテキスト値を取得するには、要素のテキストノードの値を検索する必要があります。
つまり、要素のテキストを取得する方法は、この子ノード(テキストノード)の値を取得することです。
getElementsByTagName メソッド
getElementsByTagName()
方法は指定されたタグ名を持つすべての要素のノードリスト、その要素の順序はソースドキュメントで現れる順序です。
仮定 books.xml 已に xmlDoc に読み込まれました。
このコードは最初の <title> 要素を検索します:
var x = xmlDoc.getElementsByTagName("title")[0];
ChildNodes 属性
childNodes
属性が返されます要素の子ノードのリスト。
以下のコードは最初の <title> 元素のテキストノードを検索します:
x = xmlDoc.getElementsByTagName("title")[0]; y = x.childNodes[0];
nodeValue 属性
nodeValue
属性が返されますテキストノードのテキスト値。
以下のコードは最初の <title> 元素のテキストノードのテキスト値を検索します:
例
x = xmlDoc.getElementsByTagName("title")[0]; y = x.childNodes[0]; z = y.nodeValue;
z 中的結果:雅舍談食
完全な例
例 1
<!DOCTYPE html> <html> <body> <p id="demo"></p> <script> var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() {}} if (this.readyState == 4 && this.status == 200) { myFunction(this); } }; xhttp.open("GET", "books.xml", true); xhttp.send(); function myFunction(xml) { var xmlDoc = xml.responseXML; var x = xmlDoc.getElementsByTagName('title')[0]; var y = x.childNodes[0]; document.getElementById("demo").innerHTML = y.nodeValue; } </script> </body> </html>
例 2
すべての <title> 要素をループします:
x = xmlDoc.getElementsByTagName('title'); for (i = 0; i < x.length; i++) { txt += x[i].childNodes[0].nodeValue + "<br>"; }
属性の値を取得します
DOMでは、属性もノードです。要素ノードとは異なり、属性ノードにはテキスト値があります。
属性値の取得方法は、そのテキスト値を取得することです。
を使用して取得できます getAttribute()
メソッドまたは属性ノードの nodeValue
属性を使ってこのタスクを完了します。
属性値の取得 - getAttribute()
getAttribute()
メソッドが返します属性の値。
以下のコードは最初の <title> 要素の "lang"
属性のテキスト値:
例 1
x = xmlDoc.getElementsByTagName("title")[0]; txt = x.getAttribute("lang");
例 2
すべての <book> 要素をループして、その "category" 属性を取得します:
x = xmlDoc.getElementsByTagName("book"); for (i = 0; i < x.length; i++) { txt += x[i].getAttribute("category") + "<br>"; }
属性値の取得 - getAttributeNode()
getAttributeNode()
メソッドが返します属性ノード。
以下のコードは最初の <title> 要素の "lang"
属性のテキスト値:
例 1
x = xmlDoc.getElementsByTagName("title")[0]; y = x.getAttributeNode("lang"); txt = y.nodeValue;
例 2
すべての <book> 要素をループして、その "category" 属性を取得します:
x = xmlDoc.getElementsByTagName("book"); for (i = 0; i < x.length; i++) { txt += x[i].getAttributeNode("category").nodeValue + "<br>"; }
- 前のページ DOM ノードの定位
- 次のページ DOM ノードの変更