XML DOM-노드 제거
이 장에서는 XML DOM Remove Node 작업에 대해 알아 봅니다 . 노드 제거 작업은 문서에서 지정된 노드를 제거합니다. 이 작업은 텍스트 노드, 요소 노드 또는 속성 노드와 같은 노드를 제거하기 위해 구현 될 수 있습니다.
다음은 노드 제거 작업에 사용되는 방법입니다-
removeChild()
removeAttribute()
removeChild ()
removeChild () 메서드 는 자식 목록에서 oldChild 로 표시된 자식 노드를 제거하고 이를 반환합니다. 자식 노드를 제거하는 것은 텍스트 노드를 제거하는 것과 같습니다. 따라서 자식 노드를 제거하면 연결된 텍스트 노드가 제거됩니다.
통사론
removeChild ()를 사용하는 구문은 다음과 같습니다.
Node removeChild(Node oldChild) throws DOMException
어디,
oldChild- 제거되는 노드입니다.
이 메서드는 제거 된 노드를 반환합니다.
예-현재 노드 제거
다음 예제 (removecurrentnode_example.htm)는 XML 문서 ( node.xml )를 XML DOM 객체로 구문 분석 하고 부모 노드에서 지정된 노드 <ContactNo>를 제거합니다.
<!DOCTYPE html>
<html>
<head>
<script>
function loadXMLDoc(filename) {
if (window.XMLHttpRequest) {
xhttp = new XMLHttpRequest();
} else // code for IE5 and IE6 {
xhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xhttp.open("GET",filename,false);
xhttp.send();
return xhttp.responseXML;
}
</script>
</head>
<body>
<script>
xmlDoc = loadXMLDoc("/dom/node.xml");
document.write("<b>Before remove operation, total ContactNo elements: </b>");
document.write(xmlDoc.getElementsByTagName("ContactNo").length);
document.write("<br>");
x = xmlDoc.getElementsByTagName("ContactNo")[0];
x.parentNode.removeChild(x);
document.write("<b>After remove operation, total ContactNo elements: </b>");
document.write(xmlDoc.getElementsByTagName("ContactNo").length);
</script>
</body>
</html>
위의 예에서-
x = xmlDoc.getElementsByTagName ( "ContactNo") [0] 은 0에서 인덱싱 된 <ContactNo> 요소를 가져옵니다.
x.parentNode.removeChild (x); 부모 노드에서 0에 색인 된 <ContactNo> 요소를 제거합니다.
실행
이 파일을 서버 경로에 removecurrentnode_example.htm 으로 저장 합니다 (이 파일과 node.xml은 서버의 동일한 경로에 있어야 함). 우리는 다음과 같은 결과를 얻습니다-
Before remove operation, total ContactNo elements: 3
After remove operation, total ContactNo elements: 2
예-텍스트 노드 제거
다음 예제 (removetextNode_example.htm)는 XML 문서 ( node.xml )를 XML DOM 객체로 구문 분석 하고 지정된 자식 노드 <FirstName>을 제거합니다.
<!DOCTYPE html>
<html>
<head>
<script>
function loadXMLDoc(filename) {
if (window.XMLHttpRequest) {
xhttp = new XMLHttpRequest();
} else // code for IE5 and IE6 {
xhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xhttp.open("GET",filename,false);
xhttp.send();
return xhttp.responseXML;
}
</script>
</head>
<body>
<script>
xmlDoc = loadXMLDoc("/dom/node.xml");
x = xmlDoc.getElementsByTagName("FirstName")[0];
document.write("<b>Text node of child node before removal is:</b> ");
document.write(x.childNodes.length);
document.write("<br>");
y = x.childNodes[0];
x.removeChild(y);
document.write("<b>Text node of child node after removal is:</b> ");
document.write(x.childNodes.length);
</script>
</body>
</html>
위의 예에서-
x = xmlDoc.getElementsByTagName ( "FirstName") [0]; − 0에서 색인 된 x에 대한 첫 번째 요소 <FirstName>을 가져옵니다 .
y = x.childNodes [0]; −이 줄에서 y 는 제거 할 자식 노드를 보유합니다.
x.removeChild (y); − 지정된 자식 노드를 제거합니다.
실행
이 파일을 서버 경로에 removetextNode_example.htm 으로 저장 합니다 (이 파일과 node.xml은 서버의 동일한 경로에 있어야 함). 우리는 다음과 같은 결과를 얻습니다-
Text node of child node before removal is: 1
Text node of child node after removal is: 0
removeAttribute ()
removeAttribute () 메소드는 이름으로 요소의 속성을 제거합니다.
통사론
removeAttribute () 를 사용하는 구문 은 다음과 같습니다.
void removeAttribute(java.lang.String name) throws DOMException
어디,
name- 제거 할 속성의 이름입니다.
예
다음 예제 (removeelementattribute_example.htm)는 XML 문서 ( node.xml )를 XML DOM 객체로 구문 분석 하고 지정된 속성 노드를 제거합니다.
<!DOCTYPE html>
<html>
<head>
<script>
function loadXMLDoc(filename) {
if (window.XMLHttpRequest) {
xhttp = new XMLHttpRequest();
} else // code for IE5 and IE6 {
xhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xhttp.open("GET",filename,false);
xhttp.send();
return xhttp.responseXML;
}
</script>
</head>
<body>
<script>
xmlDoc = loadXMLDoc("/dom/node.xml");
x = xmlDoc.getElementsByTagName('Employee');
document.write(x[1].getAttribute('category'));
document.write("<br>");
x[1].removeAttribute('category');
document.write(x[1].getAttribute('category'));
</script>
</body>
</html>
위의 예에서-
document.write (x [1] .getAttribute ( 'category')); − 첫 번째 위치에 색인 된 속성 범주의 값 이 호출됩니다.
x [1] .removeAttribute ( 'category'); − 속성 값을 제거합니다.
실행
이 파일을 서버 경로에 removeelementattribute_example.htm 으로 저장 합니다 (이 파일과 node.xml은 서버의 동일한 경로에 있어야 함). 우리는 다음과 같은 결과를 얻습니다-
Non-Technical
null