XML DOM 노드 대체
replaceChild() 메서드는 지정된 노드를 대체합니다.
nodeValue 속성을 사용하여 텍스트 노드 내의 텍스트를 대체합니다.
예제
아래의 예제는 XML 파일을 사용합니다 books.xml
함수 loadXMLDoc()외부 JavaScript에 위치하고 있으며 XML 파일을 로드하는 데 사용됩니다.
- 요소 노드를 대체합니다
- 이 예제에서는 replaceChild()를 사용하여 첫 번째 <book> 노드를 대체합니다.
- 텍스트 노드 내의 데이터를 대체합니다
- 이 예제에서는 nodeValue 속성을 사용하여 텍스트 노드 내의 데이터를 대체합니다.
요소 노드를 대체합니다
replaceChild() 메서드는 노드를 대체합니다.
아래의 코드 부분은 첫 번째 <book> 요소를 대체합니다:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.documentElement; // book 요소, title 요소 및 텍스트 노드를 생성합니다 newNode=xmlDoc.createElement("book"); newTitle=xmlDoc.createElement("title"); newText=xmlDoc.createTextNode("Hello World"); // title 노드에 텍스트 노드를 추가합니다 newTitle.appendChild(newText); // book 노드에 title 노드를 추가합니다 newNode.appendChild(newTitle); y=xmlDoc.getElementsByTagName("book")[0]; // 이 새로운 노드를 첫 번째 book 노드로 대체합니다 x.replaceChild(newNode, y);
예제 설명:
- 사용하여 loadXMLDoc() "을 사용하여books.xml" xmlDoc에 로드
- 새로운 요소 노드 <book>를 생성합니다
- 새로운 요소 노드 <title>를 생성합니다
- 텍스트 "Hello World"을 가진 새로운 텍스트 노드를 생성합니다
- 새로운 요소 노드 <title>에 이 새로운 텍스트 노드를 추가합니다
- 새로운 요소 노드 <book>에 이 새로운 요소 노드 <title>를 추가합니다
- 첫 번째 <book> 요소 노드를 새로운 <book> 요소 노드로 대체합니다
텍스트 노드 내의 데이터를 대체합니다
replaceData() 메서드는 텍스트 노드 내의 데이터를 대체합니다.
replaceData() 메서드는 세 가지 매개변수를 가집니다:
- offset - 대체 시작 위치. Offset 값은 0에서 시작합니다.
- length - 대체할 문자 수
- string - 삽입할 문자열
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("title")[0].childNodes[0]; x.replaceData(0,8,"hello");
예제 설명:
- 사용하여 loadXMLDoc() "을 사용하여books.xml" xmlDoc에 로드
- 첫 번째 <title> 요소 노드의 텍스트 노드를 가져옵니다
- replaceData 메서드를 사용하여 텍스트 노드의 앞 8개 문자를 "hello"로 대체합니다
nodeValue 속성 사용
nodeValue 속성을 사용하여 텍스트 노드 내 데이터를 대체하는 것이 더 쉽습니다.
아래의 코드 스니프트는 첫 번째 <title> 요소의 텍스트 노드 값을 "Easy Italian"으로 대체합니다:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("title")[0].childNodes[0]; x.nodeValue="Hello World";
예제 설명:
- 사용하여 loadXMLDoc() "을 사용하여books.xml" xmlDoc에 로드
- 첫 번째 <title> 요소 노드의 텍스트 노드를 가져옵니다
- nodeValue 속성을 사용하여 이 텍스트 노드의 텍스트를 변경할 수 있습니다
다음과 같은 곳에서 노드 변경 이 섹션에서 노드 값 변경에 대해 더 많이 읽어보세요.