XML DOM 노드 제거

removeChild() 메서드는 지정된 노드를 제거합니다。

removeAttribute() 메서드는 지정된 속성을 제거합니다。

예제

아래의 예제는 XML 파일을 사용합니다 books.xml

함수 loadXMLDoc()외부 JavaScript에서 XML 파일을 로드하는 데 사용됩니다。

요소 노드를 제거합니다
이 예제에서는 removeChild()를 사용하여 첫 번째 <book> 요소를 제거합니다。
현재 요소 노드를 제거합니다
이 예제에서는 parentNode와 removeChild()를 사용하여 현재 <book> 요소를 제거합니다。
텍스트 노드를 제거하기
이 예제에서는 removeChild()를 사용하여 첫 번째 <title> 요소의 텍스트 노드를 제거합니다。
텍스트 노드의 텍스트를 비웁니다
이 예제에서는 nodeValue() 속성을 사용하여 첫 번째 <title> 요소의 텍스트 노드를 비우습니다。
이름에 따라 속성을 제거합니다
이 예제에서는 removeAttribute()를 사용하여 첫 번째 <book> 요소에서 "category" 속성을 제거합니다。
객체에 따라 속성을 제거합니다
이 예제에서는 removeAttributeNode()를 사용하여 <book> 요소의 모든 속성을 제거합니다。

요소 노드를 제거합니다

removeChild() 메서드는 지정된 노드를 제거합니다。

한 노드가 제거되면 그 노드의 모든 자식 노드도 제거됩니다。

이 코드 조각은 로드된 xml에서 첫 번째 <book> 요소를 제거합니다:

xmlDoc=loadXMLDoc("books.xml");
y=xmlDoc.getElementsByTagName("book")[0];
xmlDoc.documentElement.removeChild(y); 

예제 설명:

  • 사용하여 loadXMLDoc() "을 붙입니다books.xml" xmlDoc에 로드합니다
  • 변수 y를 제거할 요소 노드로 설정합니다
  • removeChild() 메서드를 사용하여 부모 노드에서 요소 노드를 제거합니다

TIY

자신을 제거하다 - 현재 노드를 제거합니다

removeChild() 메서드는 지정된 노드를 제거할 수 있는 유일한 메서드입니다。

필요한 노드를 위치한 경우 parentNode 속성과 removeChild() 메서드를 사용하여 이 노드를 제거할 수 있습니다:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("book")[0];
x.parentNode.removeChild(x); 

예제 설명:

  • 사용하여 loadXMLDoc() "을 붙입니다books.xml" xmlDoc에 로드합니다
  • 변수 y를 제거할 요소 노드로 설정합니다
  • parentNode 속성과 removeChild() 메서드를 사용하여 이 요소 노드를 제거합니다

TIY

텍스트 노드를 제거하기

removeChild() 메서드는 텍스트 노드를 제거하는 데 사용될 수 있습니다:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title")[0];
y=x.childNodes[0];
x.removeChild(y); 

예제 설명:

  • 사용하여 loadXMLDoc() "을 붙입니다books.xml" xmlDoc에 로드합니다
  • 변수 x를 첫 번째 title 요소 노드로 설정합니다
  • 변수 y를 제거할 텍스트 노드로 설정합니다
  • removeChild() 메서드를 사용하여 부모 노드에서 노드를 제거합니다

TIY

계속 사용되지 않는 removeChild()를 사용하여 노드에서 텍스트를 제거합니다. nodeValue 속성을 대신 사용할 수 있습니다. 다음 장을 보세요。

텍스트 노드를 비우기

nodeValue 속성은 텍스트 노드의 값을 변경하거나 비우는 데 사용될 수 있습니다:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];
x.nodeValue=""; 

예제 설명:

  • 사용하여 loadXMLDoc() "을 붙입니다books.xml" xmlDoc에 로드합니다
  • 변수 x를 첫 번째 title 요소의 텍스트 노드로 설정합니다
  • nodeValue 속성을 사용하여 텍스트 노드의 텍스트를 비우습니다

TIY

모든 <title> 요소의 텍스트 노드를 반복하며 변경합니다: TIY

이름에 따라 속성 노드를 제거합니다

removeAttribute(name) 메서드는 이름에 따라 속성 노드를 제거하는 데 사용됩니다。

예: removeAttribute('category')

아래 코드 부분은 첫 번째 <book> 요소에서 "category" 속성을 제거합니다:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("book");
x[0].removeAttribute("category"); 

예제 설명:

  • 사용하여 loadXMLDoc() "을 붙입니다books.xml" xmlDoc에 로드합니다
  • getElementsByTagName()를 사용하여 book 요소를 가져옵니다
  • 첫 번째 book 요소 노드에서 "category" 속성을 제거합니다

TIY

모든 <book> 요소의 "category" 속성을 탐색하고 제거합니다: TIY.

객체에 따라 속성 노드를 제거합니다

removeAttributeNode(node) 메서드는 Node 객체를 매개변수로 사용하여 속성 노드를 제거합니다.

예제: removeAttributeNode(x)

아래의 코드 부분은 모든 <book> 요소의 모든 속성을 제거합니다:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("book");
for (i=0;i<x.length;i++)
{
while (x[i].attributes.length>0)
  {
  attnode=x[i].attributes[0];
  old_att=x[i].removeAttributeNode(attnode);
  }
}

예제 설명:

  • 사용하여 loadXMLDoc() "을 붙입니다books.xml" xmlDoc에 로드합니다
  • getElementsByTagName()를 사용하여 모든 book 노드를 가져옵니다
  • 각 book 요소가 속성을 가지고 있는지 확인합니다
  • book 요소에 속성이 존재하면 해당 속성을 제거합니다

TIY