XML DOM 노드 추가
예제
아래의 예제는 XML 파일을 사용합니다 books.xml。
함수 loadXMLDoc()외부 JavaScript에 위치한 것으로, XML 파일을 로드하는 데 사용됩니다.
- 마지막 자식 노드 뒤에 노드 추가
- 이 예제에서는 appendChild() 메서드를 사용하여 존재하는 노드에 자식 노드를 추가합니다.
- 지정된 자식 노드 앞에 노드 추가
- 이 예제에서는 insertBefore() 메서드를 사용하여 지정된 자식 노드 앞에 노드를 삽입합니다.
- 새로운 속성 추가
- 이 예제에서는 setAttribute() 메서드를 사용하여 새로운 속성을 추가합니다.
- 텍스트 노드에 데이터 추가
- 이 예제에서는 insertData()를 사용하여 존재하는 텍스트 노드에 데이터를 삽입합니다.
노드 추가 - appendChild()
appendChild() 메서드는 존재하는 노드에 자식 노드를 추가합니다.
새로운 노드는 어떤既存的 자식 노드 뒤에도 추가됩니다(추가됩니다).
주의사항:노드의 위치가 중요할 때는 insertBefore() 메서드를 사용하십시오.
아래의 코드 스니펫은 요소(<edition>)를 생성하고 첫 번째 <book> 요소의 마지막 자식 노드 뒤에 추가합니다:
xmlDoc=loadXMLDoc("books.xml"); newel=xmlDoc.createElement("edition"); x=xmlDoc.getElementsByTagName("book")[0]; x.appendChild(newel);
예제 설명:
- 사용하여 loadXMLDoc() "를 추가합니다books.xml"로 xmlDoc에 로드합니다
- 새로운 노드 <edition> 생성
- 이 노드를 첫 번째 <book> 요소에 추가합니다
루프를 돌고 모든 <book> 요소에 하나의 요소를 추가합니다:TIY
노드 삽입 - insertBefore()
insertBefore() 메서드는 지정된 자식 노드 앞에 노드를 삽입하는 데 사용됩니다.
추가된 노드의 위치가 중요할 때, 이 메서드가 매우 유용합니다.
xmlDoc=loadXMLDoc("books.xml"); newNode=xmlDoc.createElement("book"); x=xmlDoc.documentElement; y=xmlDoc.getElementsByTagName("book")[3]; x.insertBefore(newNode,y);
예제 설명:
- 사용하여 loadXMLDoc() "를 추가합니다books.xml"로 xmlDoc에 로드합니다
- 새로운 요소 노드 <book> 생성
- 이 노드를 마지막 <book> 요소 노드 앞에 삽입하세요
insertBefore()의 두 번째 파라미터가 null이면, 새로운 노드는 마지막으로 있는 자식 노드 뒤에 추가됩니다.
x.insertBefore(newNode,null) 그리고 x.appendChild(newNode) 모두 x에 새로운 자식 노드를 추가할 수 있습니다.
새로운 속성 추가
addAtribute() 이 메서드는 존재하지 않습니다.
속성이 존재하지 않으면, setAttribute()는 새로운 속성을 생성할 수 있습니다:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName('book'); x[0].setAttribute("edition","first");
예제 설명:
- 사용하여 loadXMLDoc() "를 추가합니다books.xml"로 xmlDoc에 로드합니다
- 첫 번째 <book> 요소의 "edition" 속성 값을 설정(생성) "first"
주의사항:기존 속성이 존재하면, setAttribute() 메서드는 기존 값을 덮어씁니다.
텍스트 노드에 텍스트 추가 - insertData()
insertData() 메서드는 기존 텍스트 노드에 데이터를 삽입합니다.
insertData() 메서드는 두 개의 매개변수를 가집니다:
- offset - 삽입 시작 위치 (0부터 시작)
- string - 삽입할 문자열
아래의 코드 스니펫은 "Easy"를 로드된 XML의 첫 번째 <title> 요소의 텍스트 노드에 추가합니다:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("title")[0].childNodes[0]; x.insertData(0,"Hello ");