XML 튜토리얼

XML 홈 XML 소개 XML 사용 방법 XML 트리 XML 구문 XML 요소 XML 속성 XML 네임스페이스 XML 표시 XML HttpRequest XML 파서 XML DOM XML XPath XML XSLT XML XQuery XML XLink XML 유효성 검사기 XML DTD XML 스키마 XML 서버 XML 예제 XML 퀴즈 XML 인증서

XML AJAX

AJAX 소개 AJAX XMLHttp AJAX 요청 AJAX 응답 AJAX XML 파일 AJAX PHP AJAX ASP AJAX 데이터베이스 AJAX 애플리케이션 AJAX 예제

XML DOM

DOM 소개 DOM 노드 DOM 액세스 DOM 노드 정보 DOM 노드 목록 DOM 순회 DOM 탐색 DOM 값 가져오기 DOM 변경 노드 DOM 제거 노드 DOM 교체 노드 DOM 생성 노드 DOM 추가 노드 DOM 복제 노드 DOM 예제

XPath 튜토리얼

XPath 소개 XPath 노드 XPath 구문 XPath 축 XPath 연산자 XPath 예제

XSLT 튜토리얼

XSLT 소개 XSL 언어 XSLT 변환 XSLT <템플릿> XSLT <값> XSLT <각각> XSLT <정렬> XSLT <만약> XSLT <선택> XSLT 적용 클라이언트의 XSLT 서버의 XSLT XSLT XML 편집 XSLT 예

XQuery 튜토리얼

XQuery 소개 XQuery 예제 XQuery FLWOR 엑스쿼리 HTML XQuery 용어 XQuery 구문 XQuery 추가 XQuery 선택 XQuery 함수

XML DTD

DTD 소개 DTD 빌딩 블록 DTD 요소 DTD 속성 DTD 요소 대 속성 DTD 엔터티 DTD 예

XSD 스키마

XSD 소개 XSD 방법 XSD <스키마> XSD 요소 XSD 속성 XSD 제한 사항

XSD 컴플렉스

XSD 요소 XSD 비어 있음 XSD 요소만 XSD 텍스트만 XSD 혼합 XSD 지표 XSD <모든> XSD <모든 속성> XSD 대체 XSD 예

XSD 데이터

XSD 문자열 XSD 날짜 XSD 숫자 XSD 기타 XSD 참조

서비스

XML 서비스 XML WSDL XML SOAP XML RDF XML RSS

참고문헌

DOM 노드 유형 DOM 노드 DOM 노드 목록 DOM NamedNodeMap DOM 문서 DOM 요소 DOM 속성 DOM 텍스트 DOM CDATA DOM 주석 DOM XMLHttpRequest DOM 파서 XSLT 요소 XSLT/XPath 함수

XML DOM - 노드 액세스


DOM을 사용하면 XML 문서의 모든 노드에 액세스할 수 있습니다.


직접 해보십시오 - 예

아래 예에서는 XML 파일 books.xml 을 사용합니다 .


getElementsByTagName() 메서드를 사용하여 "books.xml"에서 세 번째 <title> 요소 가져오기


을 사용하여 "books.xml"의 모든 <title> 요소를 반복합니다.


nodeType 속성을 사용하여 "books.xml"에 있는 루트 요소의 노드 유형을 가져옵니다.


"books.xml"의 요소 노드만 처리하려면 nodeType 속성을 사용하십시오.


합니다. nodeType 속성과 nextSibling 속성을 사용하여 "books.xml"의 요소 노드를 처리합니다.

×

헤더


노드 액세스

다음 세 가지 방법으로 노드에 액세스할 수 있습니다.

1. getElementsByTagName() 메서드를 사용하여

2. 노드 트리를 순회(순회)함으로써.

3. 노드 관계를 사용하여 노드 트리를 탐색합니다.


getElementsByTagName() 메서드

getElementsByTagName()은 지정된 태그 이름을 가진 모든 요소를 ​​반환합니다.

통사론

node.getElementsByTagName("tagname");

예시

다음 예제에서는 x 요소 아래의 모든 <title> 요소를 반환합니다.

x.getElementsByTagName("title");

위의 예는 x 노드 아래에 <title> 요소만 반환합니다. XML 문서의 모든 <title> 요소를 반환하려면 다음을 사용하십시오.

xmlDoc.getElementsByTagName("title");

여기서 xmlDoc은 문서 자체(문서 노드)입니다.



DOM 노드 목록

getElementsByTagName() 메서드는 노드 목록을 반환합니다. 노드 목록은 노드의 배열입니다.

x = xmlDoc.getElementsByTagName("title");

x의 <title> 요소는 인덱스 번호로 액세스할 수 있습니다. 세 번째 <title>에 액세스하려면 다음과 같이 작성할 수 있습니다.

y = x[2];

참고: 인덱스는 0에서 시작합니다.

이 튜토리얼의 뒷부분에서 노드 목록에 대해 자세히 알아볼 것입니다.


DOM 노드 목록 길이

length 속성은 노드 목록의 길이(노드 수)를 정의합니다.

length 속성을 사용하여 노드 목록을 반복할 수 있습니다.

예시

var x = xmlDoc.getElementsByTagName("title");

for (i = 0; i <x.length; i++) {
  // do something for each node
  }

노드 유형

XML 문서 의 documentElement 속성은 루트 노드입니다.

노드 의 nodeName 속성은 노드의 이름입니다.

노드 의 nodeType 속성은 노드의 유형입니다.

이 튜토리얼의 다음 장에서 노드 속성에 대해 자세히 알아볼 것입니다.


노드 순회

다음 코드는 루트 노드의 요소 노드이기도 한 자식 노드를 반복합니다.

예시

txt = "";
x = xmlDoc.documentElement.childNodes;

for (i = 0; i <x.length; i++) {
  // Process only element nodes (type 1)
  if (x[i].nodeType == 1) {
    txt += x[i].nodeName + "<br>";
  }
}

설명된 예:

  1. " books.xml "을 xmlDoc에 로드했다고 가정합니다.
  2. 루트 요소(xmlDoc)의 자식 노드 가져오기
  3. 각 자식 노드에 대해 노드 유형을 확인합니다. 노드 유형이 "1"이면 요소 노드입니다.
  4. 요소 노드인 경우 노드 이름을 출력합니다.

노드 관계 탐색

다음 코드는 노드 관계를 사용하여 노드 트리를 탐색합니다.

예시

x = xmlDoc.getElementsByTagName("book")[0];
xlen = x.childNodes.length;
y = x.firstChild;

txt = "";
for (i = 0; i <xlen; i++) {
  // Process only element nodes (type 1)
  if (y.nodeType == 1) {
    txt += y.nodeName + "<br>";
  }
  y = y.nextSibling;
}

설명된 예:

  1. " books.xml "을 xmlDoc에 로드했다고 가정합니다.
  2. 첫 번째 book 요소의 자식 노드 가져오기
  3. "y" 변수를 첫 번째 book 요소의 첫 번째 자식 노드로 설정합니다.
  4. 각 자식 노드에 대해(첫 번째 자식 노드 "y"로 시작):
  5. 노드 유형을 확인하십시오. 노드 유형이 "1"이면 요소 노드입니다.
  6. 요소 노드인 경우 노드 이름을 출력합니다.
  7. "y" 변수를 다음 형제 노드로 설정하고 루프를 다시 실행합니다.