본문 바로가기
  • 오늘도 한걸음. 수고많았어요.^^
  • 조금씩 꾸준히 오래 가자.ㅎ
IT기술/xml

XML 노드의 관리, 노드의 추가(appendChild, insertBefore)

by 미노드 2023. 3. 8.

노드의 추가

다음 메소드를 사용하면 특정 위치에 새로운 노드를 추가할 수 있습니다.

1. appendChild()
2. insertBefore()
3. insertData()

appendChild() 메소드

appendChild() 메소드는 새로운 노드를 해당 노드의 자식 노드 리스트(child node list)의 맨 마지막에 추가합니다.

다음 예제는 새로운 <paradigm>요소 노드를 생성하고, 생성한 요소 노드를 첫 번째 <language>요소 노드의 마지막 자식 요소 노드로 추가하는 예제입니다.

1
2
3
4
5
예제
xmlObj = xmlHttp.responseXML;                           // 요청한 데이터를 XML DOM 객체로 반환함.
firstLang = xmlObj.getElementsByTagName("language")[0]; // 첫 번째 <language>요소를 반환함.
newNode = xmlObj.createElement("paradigm");             // 새로운 <paradigm>요소를 생성함.
firstLang.appendChild(newNode);                         // 첫 번째 <language>요소에 새로운 요소를 추가함.
cs

위의 예제에서 createElement() 메소드는 인수로 전달받은 값을 nodeName의 값으로 하는 새로운 요소 노드를 생성합니다.
따라서 createElement() 메소드는 nodeType의 값이 1이며, nodeValue의 값은 undefined인 새로운 노드를 반환합니다.

insertBefore() 메소드

insertBefore() 메소드는 새로운 노드를 특정 자식 노드 바로 앞에 추가합니다.
insertBefore() 메소드의 원형은 다음과 같습니다.

원형
부모노드.insertBefore(새로운자식노드, 기준자식노드);

1. 새로운 자식 노드 : 자식 노드 리스트(child node list)에 새롭게 추가할 자식 노드를 전달합니다.
2. 기준 자식 노드 : 새로운 노드를 삽입할 때 기준이 되는 노드로, 이 노드 바로 앞에 새로운 노드가 추가됩니다.

다음 예제는 새로운 요소 노드를 생성하고, 그 노드를 노드 리스트의 두 번째 요소 노드 앞에 추가하는 예제입니다.
다음 예제는 새로운 <paradigm>요소 노드를 생성하고, 생성한 요소 노드를 첫 번째 <language>요소의 두 번째 자식 요소 노드로 추가하는 예제입니다.

1
2
3
4
5
xmlObj = xmlHttp.responseXML;                           // 요청한 데이터를 XML DOM 객체로 반환함.
firstLang = xmlObj.getElementsByTagName("language")[0]; // 첫 번째 <language>요소를 반환함.
newNode = xmlObj.createElement("paradigm");             // 새로운 <paradigm>요소 노드를 생성함.
// 자식 노드 중 두 번째 요소 노드 앞에 새로운 요소 노드를 추가함.
firstLang.insertBefore(newNode, firstLang.childNodes[2]);
cs

 

 

'IT기술 > xml' 카테고리의 다른 글

[XML] SOAP 첨부용 WSDL 작성  (0) 2023.03.21
[XML] SOAP 메시지  (0) 2023.03.21
XML 노드의 조작  (0) 2023.03.08
XML 노드의 정보  (0) 2023.03.08
XML 노드 리스트  (0) 2023.03.08