XML DOM replaceChild() 메서드

Node 객체 참조 매뉴얼

정의와 사용법

replaceChild() 메서드는 특정 자식 노드를 다른 노드로 대체할 수 있습니다.

성공적으로 대체되면 이 메서드는 대체된 노드를 반환하며, 대체 실패하면 NULL을 반환합니다。

문법:

nodeObject.replaceChild(new_node,old_node)
파라미터 설명
new_node 필수. 새로운 노드를 지정합니다.
old_node 필수. 대체할 노드를 지정합니다.

훌륭하고 주의사항

주의사항:Internet Explorer는 노드 간에 생성된 공백 텍스트 노드(예: 엔터 키)를 무시하며 Mozilla는 이렇게 하지 않습니다. 따라서 아래의 예제에서 첫 번째 자식 노드의 노드 타입을 확인하는 함수를 사용합니다.

요소 노드의 노드 타입은 1입니다. 따라서 첫 번째 자식 노드가 요소 노드가 아니면 다음 노드로 이동하여 첫 번째 요소 자식 노드가 찾아질 때까지 지속적으로 확인합니다. 이 방법을 통해 Internet Explorer와 Mozilla에서 올바른 방법을 얻을 수 있습니다.

훌륭합니다:IE와 Mozilla 브라우저 간 XML DOM의 차이에 대한 더 많은 내용을 원하시면 우리의 DOM 브라우저

예제

모든 예제에서 우리는 XML 파일을 사용할 것입니다 books.xml,또한 JavaScript 함수 loadXMLDoc()

아래의 코드 부분은 첫 번째 <book> 요소의 <title> 요소를 대체할 수 있습니다:

//첫 번째 자식 노드가 요소 노드인지 확인
function get_firstchild(n)
{
var x=n.firstChild;
while (x.nodeType!=1)
  {
  x=x.nextSibling;
  }
return x;
}
xmlDoc=loadXMLDoc("books.xml");
//생성하려는 표제 요소와 텍스트 노드
var newNode=xmlDoc.createElement("title");
var newText=xmlDoc.createTextNode("Giada's Family Dinners");
//텍스트 노드를 제목 노드에 추가
newNode.appendChild(newText);
//첫 번째 자식 노드를 새 노드로 대체
var x=xmlDoc.getElementsByTagName("book")[0];
x.replaceChild(newNode,get_firstchild(x));
//모든 제목 출력
var y=xmlDoc.getElementsByTagName("title");
for (i=0;i<y.length;i++)
  {
  document.write(y[i].childNodes[0].nodeValue);
  document.write("<br />");
  }

출력:

Giada's Family Dinners
Harry Potter
XQuery Kick Start
Learning XML

Node 객체 참조 매뉴얼