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>";
}
}
»그것을 자신을 시도 예 설명 :
- 당신은 "로드 있다고 가정 Books.xml을을 해당 xmldoc로"
- 루트 요소의 자식 노드 위젯 (xmlDoc)
- 각 자식 노드의 경우, 노드 유형을 확인합니다. 노드 유형 인 경우 "1" 는 요소 노드
- 출력 노드의 이름이 요소 노드이면
탐색 노드 관계
다음 코드는 노드 관계를 사용하여 노드 트리를 탐색 :
예
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;
}
»그것을 자신을 시도 예 설명 :
- 당신은 "로드 있다고 가정 Books.xml을을 해당 xmldoc로"
- 첫 번째 책 요소의 자식 노드를 가져옵니다
- 설정 "y" 첫 번째 책 요소의 첫 번째 자식 노드로 변수를
- 각 자식 노드 (starting with the first child node "y") :
- 노드 유형을 확인합니다. 노드 유형 인 경우 "1" 는 요소 노드
- 출력 노드의 이름이 요소 노드이면
- 설정 "y" 다음 형제 노드로 변수를 다시 루프를 통해 실행