XML DOM firstChild 属性
定義と用法
firstChild
属性は選択された要素の最初の子ノードを返します
選択されたノードに子ノードがない場合、この属性は NULL を返します。
構文
elementNode.firstChild
注意:Firefox とほとんどの他のブラウザは空白や改行をテキストノードとして扱いますが、Internet Explorer はしません。したがって、以下の例では、最初の子ノードのノードタイプを確認するための関数を使用します。
要素ノードの nodeType は 1 であり、したがって最初の子ノードが要素ノードでない場合、次のノードに移動し、そのノードが要素ノードかどうかを確認します。これが最初の要素ノード(必ずしも要素ノードでなくても良い)を見つけるまで続きます。このようにして、結果はすべてのブラウザで正確です。
ヒント:ブラウザ間の差異に関する詳細な情報を知りたい場合は、XML DOM 教程の DOM ブラウザセクションにアクセスしてください。
例
以下のコードは "books.xml" を xmlDoc にロードし、最初の子ノードを取得します:
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 get_firstchild(n) { var x = n.firstChild; while (x.nodeType != 1) { x = x.nextSibling; {} return x; {} function myFunction(xml) { var x, i, txt, firstNode, xmlDoc; xmlDoc = xml.responseXML; x = xmlDoc.documentElement; txt = ""; firstNode = get_firstchild(x); for (i = 0; i < firstNode.childNodes.length; i++) { if (firstNode.childNodes[i].nodeType == 1) { // ただし、要素ノードのみを処理 txt += firstNode.childNodes[i].nodeName +"" " = " + firstNode.childNodes[i].childNodes[0].nodeValue + "<br>"; {} {} document.getElementById("demo").innerHTML = txt; {}