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);

예제 설명:

  1. 사용하여 loadXMLDoc() "를 추가합니다books.xml"로 xmlDoc에 로드합니다
  2. 새로운 노드 <edition> 생성
  3. 이 노드를 첫 번째 <book> 요소에 추가합니다

TIY

루프를 돌고 모든 <book> 요소에 하나의 요소를 추가합니다:TIY

노드 삽입 - insertBefore()

insertBefore() 메서드는 지정된 자식 노드 앞에 노드를 삽입하는 데 사용됩니다.

추가된 노드의 위치가 중요할 때, 이 메서드가 매우 유용합니다.

xmlDoc=loadXMLDoc("books.xml");
newNode=xmlDoc.createElement("book");
x=xmlDoc.documentElement;
y=xmlDoc.getElementsByTagName("book")[3];
x.insertBefore(newNode,y);

예제 설명:

  1. 사용하여 loadXMLDoc() "를 추가합니다books.xml"로 xmlDoc에 로드합니다
  2. 새로운 요소 노드 <book> 생성
  3. 이 노드를 마지막 <book> 요소 노드 앞에 삽입하세요

TIY

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");

예제 설명:

  1. 사용하여 loadXMLDoc() "를 추가합니다books.xml"로 xmlDoc에 로드합니다
  2. 첫 번째 <book> 요소의 "edition" 속성 값을 설정(생성) "first"

TIY

주의사항:기존 속성이 존재하면, 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 ");

TIY