XML DOM replaceChild() 메서드
정의와 사용법
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