XML DOM childNodes 属性

定義と使用法

childNodes 属性は選択されたノードの子ノードを含む NodeList を返します。

選択されたノードに子ノードがない場合、この属性はノードを含まない NodeList を返します。

ヒント:childNodes リストをループ処理する場合は、parentObject の childNodes リストを明示的に使用するよりも nextSibling 属性を使用する方が効果的です。

構文

elementNode.childNodes

例 1

以下のコードは "books.xml" を xmlDoc に読み込み、"books.xml" 内の最初の <title> 要素からテキストノードを取得します:

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;
}

実際に試してみてください

例 2

以下のコードは "books.xml" を xmlDoc に読み込み、"books.xml" 内の最初の <book> 要素から子ノードの数を取得します:
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("book")[0].childNodes;
    document.getElementById("demo").innerHTML =
    x.length;
}

実際に試してみてください

Firefoxおよびほとんどの他のブラウザは、空白または改行をテキストノードとして処理しますが、Internet Explorerはしません。したがって、上記の例の出力は異なります。

ブラウザ間の差異に関する詳細な情報を取得するには、XML DOM 教程の DOM ブラウザセクションにアクセスしてください。