XML DOM 노드 생성

새 엘리먼트 노드 생성하기

createElement() 메서드는 새 엘리먼트 노드를 생성하는 데 사용된다.

appendChild() 메서드는 부모 노드에 자식 노드를 추가하는 데 사용된다.

새 속성 노드 생성하기

createAttribute() 메서드는 새 속성 노드를 생성하는 데 사용된다.

setAttributeNode() 메서드는 엘리먼트 노드에 속성 노드를 추가하는 데 사용된다.

새 텍스트 노드 생성하기

createTextNode() 메서드는 새 텍스트 노드를 생성하는 데 사용된다.

appendChild() 메서드는 엘리먼트 노드에 텍스트 노드를 추가하는 데 사용된다.

새 CDATA 섹션 노드 생성하기

createCDATAsection() 메서드는 새 CDATA 섹션 노드를 생성하는 데 사용된다.

appendChild() 메서드는 엘리먼트 노드에 CDATA 섹션 노드를 추가하는 데 사용된다.

새 주석 노드 생성하기

createComment() 메서드는 새 주석 노드를 생성하는 데 사용된다.

appendChild() 메서드는 엘리먼트 노드에 주석 노드를 추가하는 데 사용된다.

XML DOM 노드 생성 예제

XML DOM 노드를 생성하는 예제는 다음과 같다.

var text="<person>";
text +=  "<name>name1</name>";
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 addressNode = xmlDoc.createElement('address');
var attNode = xmlDoc.createAttribute('city');
var textNode = xmlDoc.createTextNode('address 123');
var cdataNode = xmlDoc.createCDATASection('cdata section');
var commentNode = xmlDoc.createComment('this is a comment');

attNode.nodeValue = 'san francisco';
addressNode.setAttributeNode(attNode);
addressNode.appendChild(textNode);
addressNode.appendChild(cdataNode);
addressNode.appendChild(commentNode);

xmlDoc.getElementsByTagName("person")[0].appendChild(addressNode);

console.log((new XMLSerializer()).serializeToString(xmlDoc));

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

<person>
    <name>name1</name>
    <phone>phone1</phone>
    <address city="san francisco">address 123
        <!--[CDATA[cdata section]]-->
        <!--this is a comment-->
    </address>
</person>

관련 수업

← 이전다음 →