XML DOM 노드

DOM 트리에는 다양한 유형의 Node 객체가 담겨 있으며, XML 문서 안의 것들은 모두 노드에 해당한다.

XML DOM 프로퍼티

XML DOM의 경우 몇 가지 공통적인 DOM 프로퍼티가 있다.

XML DOM 메서드

XML DOM의 경우 다음과 같은 몇 가지 공통적인 DOM 메서드가 있다.

Example of XML DOM 메서드 및 프로퍼티 예제

XML DOM 메서드 및 프로퍼티 예제는 다음과 같다.

var text="<person>";
text +=  "<name>name1</name>";
text +=  "<address>address1</address>";
text +=  "<phone>phone1</phone>";
text +=  "</person>";

if (window.DOMParser)
{
    parser=new DOMParser();
    xmlDoc=parser.parseFromString(text,"text/xml");
}
else // 인터넷 익스플로러
{
    xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
    xmlDoc.async=false;
    xmlDoc.loadXML(text); 
} 

var address = xmlDoc.getElementsByTagName("address")[0].childNodes[0].nodeValue;
console.log("Address: " + address);

위 코드를 실행한 결과는 다음과 같다.

Address: address1

XML DOM 노드 유형

노드의 nodeType 프로퍼티는 노드의 타입이며, 다음과 같은 타입이 있다.

nodeType 명 nodeType 값
Element 1
Attribute 2
Text 3
Comment 8
Document 9

XML DOM 노드 타입의 예는 다음과 같다.

var text="<person>";
text +=  "<name>name1</name>";
text +=  "<address>address1</address>";
text +=  "<phone>phone1</phone>";
text +=  "</person>";

if (window.DOMParser)
{
    parser=new DOMParser();
    xmlDoc=parser.parseFromString(text,"text/xml");
}
else // 인터넷 익스플로러
{
    xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
    xmlDoc.async=false;
    xmlDoc.loadXML(text); 
} 

console.log(xmlDoc.nodeName + ": " + 
        xmlDoc.nodeType);
console.log(xmlDoc.documentElement.nodeName + ": " + 
        xmlDoc.documentElement.nodeType);

x=xmlDoc.documentElement.childNodes;
for (i=0;i<x.length;i++)
{
    console.log(x[i].nodeName + ": " + x[i].nodeType);
    console.log(x[i].childNodes[0].nodeName + ": " + x[i].childNodes[0].nodeType);
}

위 코드를 실행한 결과는 다음과 같다.

#document: 9
person: 1
name: 1
#text: 3
address: 1
#text: 3
phone: 1
#text: 3

XML DOM의 nodeName 프로퍼티

XML DOM의 nodeValue 프로퍼티

관련 수업

← 이전다음 →