XML DOM 노드 삽입

엘리먼트 노드 삽입하기

insertBefore() 메서드는 특정 자식 노드 앞에 노드를 삽입하는 데 사용된다.

엘리먼트 노드 추가

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

텍스트 노드에 텍스트 삽입하기

insertData() 메서드는 기존 텍스트 노드에 텍스트를 삽입하는 데 사용되며, 두 개의 매개변수를 받는다.

XML DOM 노드 삽입 예제

XML DOM 노드를 삽입하는 예제는 다음과 같다.

var text="<person>";
text +=  "<name>name1</name>";
text +=  "<address street='street1' city='city1'>address1</address>";
text +=  "<phone>phone1</phone>";
text +=  "</person>";

if (window.DOMParser)
{
    parser=new DOMParser();
    xmlDoc=parser.parseFromString(text,"text/xml");
}
else // Internet Explorer
{
    xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
    xmlDoc.async=false;
    xmlDoc.loadXML(text); 
} 

var newAddressNode2 = xmlDoc.createElement('address');
var textNode2 = xmlDoc.createTextNode('address2');
newAddressNode2.appendChild(textNode2);

var newAddressNode3 = xmlDoc.createElement('address');
var textNode3 = xmlDoc.createTextNode('address3');
newAddressNode3.appendChild(textNode3);

var oldAddressNode = xmlDoc.getElementsByTagName("address")[0];
xmlDoc.documentElement.insertBefore(newAddressNode2, oldAddressNode);

xmlDoc.documentElement.appendChild(newAddressNode3);

oldAddressNode.childNodes[0].insertData(0, '1111 ');

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

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

<person>
    <name>name1</name>
    <address>address2</address>
    <address city="city1" street="street1">1111 address1</address>
    <phone>phone1</phone>
    <address>address3</address>
</person>

관련 수업

← 이전