XML DOM firstChild 속성

정의와 사용법

firstChild 속성은 선택된 요소의 첫 번째 자식 노드를 반환합니다.

선택된 노드가 자식 노드가 없다면, 이 속성은 NULL을 반환합니다.

문법

elementNode.firstChild
Tips and Notes

주의: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;
}

직접 시험해 보세요