XML DOM 고급 XML DOM - 고급 이 튜토리얼의 앞부분에서 우리는 XML DOM을 소개하고 XML DOM의 getElementsByTagName() 메서드를 사용하여 XML 문서에서 데이터를 검색했습니다. 이 장에서는 다른 중요한 XML DOM 메소드를 결합할 것입니다. XML DOM 튜토리얼에서 XML DOM에 대해 자세히 알아볼 수 있습니다. 다음 예제에 사용된 XML 파일 books.xml에서 요소 값을 가져옵니다. 다음 예에서는 첫 번째 <title> 요소의 텍스트 값을 검색합니다.
txt=xmlDoc.getElementsByTagName("제목")[0].childNodes[0].nodeValue;
시도해 보세요 »
다음 예에서는 첫 번째 <title> 요소의 "lang" 속성의 텍스트 값을 검색합니다.
txt=xmlDoc.getElementsByTagName("title")[0].getAttribute("lang");
시도해 보세요 »
다음 예에서는 첫 번째 <title> 요소의 텍스트 값을 변경합니다.
x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];x.nodeValue="쉬운 요리";
시도해 보세요 »
XML DOM의 setAttribute() 메소드를 사용하여 기존 속성 값을 변경하거나 새 속성을 생성할 수 있습니다.
다음 예에서는 새 속성(edition="first")을 생성하고 이를 각 <book> 요소에 추가합니다.
x=xmlDoc.getElementsByTagName("book");for(i=0;i<x.length;i++){x[i].setAttribute("edition","first");}
시도해 보세요 »
XML DOM의 createElement() 메서드는 새 요소 노드를 생성합니다.
XML DOM의 createTextNode() 메서드는 새 텍스트 노드를 생성합니다.
XML DOM의appendChild() 메서드는 노드에 하위 노드를 추가합니다(마지막 하위 노드 뒤).
텍스트 콘텐츠가 포함된 새 요소를 만들려면 새 요소 노드와 새 텍스트 노드를 동시에 만든 다음 기존 노드에 추가하세요.
다음 예에서는 먼저 다음 텍스트를 사용하여 새 요소(<edition>)를 만든 다음 이를 첫 번째 <book> 요소에 추가합니다.
newel=xmlDoc.createElement("edition");newtext=xmlDoc.createTextNode("First");newel.appendChild(newtext);x=xmlDoc.getElementsByTagName("book");x[0].appendChild(newel);
시도해 보세요 »
예시 설명
<edition> 요소 생성
값이 "First"인 텍스트 노드를 만듭니다.
이 텍스트 노드를 새 <edition> 요소에 추가합니다.
첫 번째 <book> 요소에 <edition> 요소를 추가합니다.
다음 예에서는 첫 번째 <book> 요소의 첫 번째 노드를 삭제합니다.
x=xmlDoc.getElementsByTagName("book")[0];x.removeChild(x.childNodes[0]);
시도해 보세요 »
참고: 위 예제의 결과는 사용된 브라우저에 따라 다를 수 있습니다. Firefox는 개행 문자를 빈 텍스트 노드로 처리하지만 Internet Explorer는 그렇지 않습니다. XML DOM 튜토리얼에서 이 문제와 이를 방지하는 방법에 대해 자세히 알아볼 수 있습니다.