최신 웹 개발 튜토리얼
 

XML DOM - 액세스 노드


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


그것을 자신을 시도 - 예를

아래의 예는 XML 파일의 사용 에서는 Books.xml .

노드 목록에 인덱스 번호를 사용하여 노드에 액세스
사용 getElementsByTagName() 세 번째 얻을 방법을 <title> 에서 요소 "books.xml"

길이 속성을 사용하여 노드를 통해 루프
모든을 통해 루프 길이 속성을 사용하여 <title> 의 요소 "books.xml"

요소의 노드 유형보기
의 루트 요소의 노드 유형을 얻을 수있는 nodeType에 속성을 사용하여 "books.xml" .

요소 노드를 통해 루프
만 프로세스 요소 노드의 nodeType에 속성을 사용하여 "books.xml" .

노드의 관계를 이용하여 요소 노드를 통해 루프
의 요소 노드를 처리 할 nodeType에 속성과로 nextSibling 속성을 사용하여 "books.xml" .

×

머리글


노드 액세스

당신은 세 가지 방법으로 노드에 액세스 할 수 있습니다 :

사용하여 1 getElementsByTagName() 메소드를

통해 반복함으로써 2 (traversing) 노드 트리입니다.

상기 노드 트리를 탐색하는 노드의 관계를 이용하여 3.


getElementsByTagName() 메소드

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

통사론

node.getElementsByTagName("tagname");

다음 예는 모든 반환 <title> 는 x 요소 아래 요소를 :

x.getElementsByTagName("title");

만 반환 위의 예는 참고 <title> 는 x 노드 아래 요소를. 모든 돌아가려면 <title> XML 문서 사용 요소를 :

xmlDoc.getElementsByTagName("title");

여기서 해당 xmldoc는 문서 자체 (document node) .


DOM 노드 목록

getElementsByTagName() 메소드는 노드 목록을 반환합니다. 노드리스트는 노드들의 배열이다.

x = xmlDoc.getElementsByTagName("title");

<title> X의 요소는 인덱스 번호에 액세스 할 수 있습니다. 세 번째 액세스하려면 <title> 당신은 쓸 수 있습니다 :

y = x[2];

Note: 인덱스는 0에서 시작한다.

이 튜토리얼의 이후 장에서 노드 목록에 대한 자세한 내용을 배울 것입니다.


DOM 노드 목록 길이

길이 속성은 노드리스트의 길이를 정의한다 (the number of nodes) .

길이 속성을 사용하여 노드 목록을 통해 당신은 할 수 루프 :

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

for (i = 0; i <x.length; i++) {
  // do something for each node
  }
»그것을 자신을 시도

노드 유형

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

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. 첫 번째 책 요소의 자식 노드를 가져옵니다
  3. 설정 "y" 첫 번째 책 요소의 첫 번째 자식 노드로 변수를
  4. 각 자식 노드 (starting with the first child node "y") :
  5. 노드 유형을 확인합니다. 노드 유형 인 경우 "1" 는 요소 노드
  6. 출력 노드의 이름이 요소 노드이면
  7. 설정 "y" 다음 형제 노드로 변수를 다시 루프를 통해 실행