XML DOM 튜토리얼로그인
XML DOM 튜토리얼
작가:php.cn  업데이트 시간:2022-04-13 15:27:56

DOM 추가 노드


XML DOM 노드 추가


tryitimg.gif사용해 보기 - 예시


아래 예에서는 books.xml XML 파일을 사용합니다.
외부 JavaScript에 있는 loadXMLDoc() 함수는 XML 파일을 로드하는 데 사용됩니다.

마지막 하위 노드 뒤에 노드 추가
이 예에서는 AppendChild() 메서드를 사용하여 기존 노드에 하위 노드를 추가합니다.

지정된 하위 노드 앞에 노드 추가
이 예제에서는 insertBefore() 메서드를 사용하여 지정된 하위 노드 앞에 노드를 삽입합니다.

새 속성 추가
이 예에서는 setAttribute() 메서드를 사용하여 새 속성을 추가합니다.

텍스트 노드에 데이터 추가
이 예제에서는 insertData()를 사용하여 기존 텍스트 노드에 데이터를 삽입합니다.


노드 추가 -appendChild()

appendChild() 메소드는 기존 노드에 하위 노드를 추가합니다.

기존 하위 노드 뒤에 새 노드가 추가(추가)됩니다.

참고: 노드의 위치가 중요한 경우 insertBefore() 메서드를 사용하세요.

다음 코드 조각은 요소(<edition>)를 생성하고 첫 번째 <book> 요소의 마지막 하위 노드 뒤에 추가합니다.

<!DOCTYPE html>
<html>
<head>
<script src="loadxmldoc.js"> 
</script>
</head>
<body>

<script>
xmlDoc=loadXMLDoc("books.xml");

newel=xmlDoc.createElement("edition");

x=xmlDoc.getElementsByTagName("book")[0];
x.appendChild(newel);

document.write(x.getElementsByTagName("edition")[0].nodeName);
</script>
</body>
</html>

인스턴스 실행»

온라인 인스턴스를 보려면 "인스턴스 실행" 버튼을 클릭하세요

인스턴스 설명:

  1. loadXMLDoc()을 사용하여 "books.xml"을 xmlDoc에 로드

  2. 새 노드<edition> 만들기

  3. 이 노드를 첫 번째 <book> 요소에 추가합니다.

요소를 탐색하여 모든 <book> 요소에 추가합니다.


노드 삽입 - insertBefore()

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

이 방법은 추가되는 노드의 위치가 중요할 때 유용합니다:

Instance

<!DOCTYPE html>
<html>
<head>
<script src="loadxmldoc.js"> 
</script>
</head>
<body>

<script>
xmlDoc=loadXMLDoc("books.xml");

newNode=xmlDoc.createElement("book");

x=xmlDoc.documentElement;
y=xmlDoc.getElementsByTagName("book");

document.write("Book elements before: " + y.length);
document.write("<br>");
x.insertBefore(newNode,y[3]);

y=xmlDoc.getElementsByTagName("book");
document.write("Book elements after: " + y.length);
</script>
</body>
</html>

인스턴스 실행 »

온라인 인스턴스를 보려면 "인스턴스 실행" 버튼을 클릭하세요

예제 설명:

  1. loadXMLDoc()을 사용하여 "books.xml"을 xmlDoc에 로드

  2. 새 요소 노드 만들기 < ;book>

  3. 마지막 <book> 요소 노드

insertBefore()의 두 번째 노드 앞에 이 새 노드를 삽입합니다. 매개변수가 null이면 새 노드는 마지막 기존 하위 노드 뒤에 추가됩니다.

x.insertBefore(newNode,null)x.appendChild(newNode)는 모두 x에 새 하위 노드를 추가할 수 있습니다.


새 속성 추가

addAtribute() 이 메소드가 존재하지 않습니다.

속성이 존재하지 않는 경우 setAttribute()는 새 속성을 생성할 수 있습니다.

Instance

<!DOCTYPE html>
<html>
<head>
<script src="loadxmldoc.js"> 
</script>
</head>
<body>

<script>
xmlDoc=loadXMLDoc("books.xml");

x=xmlDoc.getElementsByTagName("title");

x[0].setAttribute("edition","first");

document.write("Edition: ");
document.write(x[0].getAttribute("edition"));

</script>
</body>
</html>

인스턴스 »

온라인 예제를 보려면 "예제 실행" 버튼을 클릭하세요

예제 설명:

  1. loadXMLDoc() 사용 "books.xml"을 로드하려면 xmlDoc

  2. 을 로드하고 첫 번째 <book> 요소의 "edition" 속성 값을 "first"

    <로 설정(생성)합니다. 🎜>

참고: 속성이 이미 존재하는 경우 setAttribute() 메서드는 기존 값을 덮어씁니다.


텍스트 노드에 텍스트 추가 - insertData()

insertData() 메서드는 기존 텍스트 노드에 데이터를 삽입합니다.

insertData() 메소드에는 두 개의 매개변수가 있습니다:

  • offset - 문자 삽입을 시작할 위치(0부터 시작)

  • string - 삽입할 문자열

다음 코드 조각은 로드된 XML의 첫 번째 <title> 요소의 텍스트 노드에 "Easy"를 추가합니다.

인스턴스

<!DOCTYPE html>
<html>
<head>
<script src="loadxmldoc.js"> 
</script>
</head>
<body>

<script>
xmlDoc=loadXMLDoc("books.xml");

x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];
document.write(x.nodeValue);
x.insertData(0,"Easy ");
document.write("<br>");
document.write(x.nodeValue);

</script>
</body>
</html>

인스턴스 실행»온라인 인스턴스를 보려면 "인스턴스 실행" 버튼을 클릭하세요