XML DOM 노드 추가
직접 해보십시오 - 예
아래 예에서는 XML 파일 books.xml 을 사용합니다 .
이 예제에서는 appendChild()를 사용하여 기존 노드에 자식 노드를 추가합니다.
이 예제에서는 insertBefore()를 사용하여 지정된 자식 노드 앞에 노드를 삽입합니다.
이 예제에서는 setAttribute() 메서드를 사용하여 새 속성을 추가합니다.
이 예제에서는 insertData()를 사용하여 기존 텍스트 노드에 데이터를 삽입합니다.
노드 추가 - appendChild()
appendChild() 메서드 는 기존 노드에 자식 노드를 추가합니다.
새 노드는 기존 자식 노드 뒤에 추가(추가)됩니다.
참고: 노드의 위치가 중요한 경우 insertBefore()를 사용하십시오.
이 코드 조각은 요소(<edition>)를 만들고 첫 번째 <book> 요소의 마지막 자식 뒤에 추가합니다.
예시
newEle = xmlDoc.createElement("edition");
xmlDoc.getElementsByTagName("book")[0].appendChild(newEle);
설명된 예:
- " books.xml "이 xmlDoc에 로드 되었다고 가정합니다.
- 새 노드 생성 <에디션>
- 첫 번째 <book> 요소에 노드 추가
이 코드 조각은 위와 동일하지만 새 요소에 값이 추가됩니다.
예시
newEle = xmlDoc.createElement("edition");
newText=xmlDoc.createTextNode("first");
newEle.appendChild(newText);
xmlDoc.getElementsByTagName("book")[0].appendChild(newEle);
설명된 예:
- " books.xml "이 xmlDoc에 로드 되었다고 가정합니다.
- 새 노드 생성 <에디션>
- "먼저" 새 텍스트 노드 만들기
- <edition> 노드에 텍스트 노드 추가
- <book> 요소에 <addition> 노드 추가
노드 삽입 - insertBefore()
insertBefore() 메서드 는 지정된 자식 노드 앞에 노드를 삽입합니다.
이 방법은 추가된 노드의 위치가 중요한 경우에 유용합니다.
예시
newNode = xmlDoc.createElement("book");
x = xmlDoc.documentElement;
y = xmlDoc.getElementsByTagName("book")[3];
x.insertBefore(newNode,y);
설명된 예:
- " books.xml "이 xmlDoc에 로드 되었다고 가정합니다.
- 새 요소 노드 <책> 만들기
- 마지막 <book> 요소 노드 앞에 새 노드 삽입
insertBefore()의 두 번째 매개변수가 null이면 마지막 기존 자식 노드 다음에 새 노드가 추가됩니다.
x.insertBefore(newNode,null) 및 x.appendChild(newNode) 는 모두 x에 새 자식 노드를 추가합니다.
새 속성 추가
setAttribute() 메서드 는 속성 값을 설정합니다.
예시
xmlDoc.getElementsByTagName('book')[0].setAttribute("edition","first");
설명된 예:
- " books.xml "이 xmlDoc에 로드되었다고 가정합니다.
- 첫 번째 <book> 요소에 대해 "edition" 속성 값을 "first"로 설정합니다.
add Attribute()라는 메소드가
없습니다. 속성이 존재하지 않으면 setAttribute()가 새 속성을 생성합니다.
참고: 속성이 이미 존재하는 경우 setAttribute() 메서드는 기존 값을 덮어씁니다.
텍스트 노드에 텍스트 추가 - insertData()
insertData() 메서드 는 기존 텍스트 노드에 데이터를 삽입합니다.
insertData() 메소드에는 두 개의 매개변수가 있습니다.
- offset - 문자 삽입을 시작할 위치(0에서 시작)
- string - 삽입할 문자열
다음 코드 조각은 로드된 XML의 첫 번째 <title> 요소의 텍스트 노드에 "Easy"를 추가합니다.
예시
xmlDoc.getElementsByTagName("title")[0].childNodes[0].insertData(0,"Easy ");