Latest web development tutorials

XML DOM 노드 액세스

DOM으로, 당신은 XML 문서의 각 노드에 액세스 할 수 있습니다.


예

시도 - 예

다음 예는 XML이 파일을 사용 Books.xml을을 .
기능 loadXMLDoc () 외부 자바 스크립트는 XML 파일을로드하는 데 사용됩니다.

노드에 액세스하는 노드 목록 인덱스 번호를 사용
이 예는 "Books.xml을"세 번째 <제목> 요소를 얻을 수 getElementsByTagname () 메소드를 사용합니다.

노드를 통해 루프 길이 속성을 사용하여
이 예는 "Books.xml을"모든 <제목> 요소를 통해 루프 길이 속성을 사용합니다.

보기 노드 유형 소자
이 예는 루트 요소의 "Books.xml을"노드 유형을 얻을 수있는 nodeType에 속성을 사용합니다.

요소 노드 이송
이 예는 "Books.xml을"요소 노드를 처리하기 위해 nodeType에 속성을 사용합니다.

관계 요소 노드를 통과 할 노드를 사용하여
이 예는 "Books.xml을"요소 노드를 처리하기 위해 nodeType에 호텔로 nextSibling 속성을 사용합니다.


액세스 노드

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

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

2.주기 (이송) 노드 트리.

노드 탐색 트리에서 노드의 관계를 이용하여 3.


getElementsByTagName () 메소드

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

문법

node.getElementsByTagName("tagname");

다음 예는 모든 <제목>을 반환하는 원소 (X)에서 요소 :

x.getElementsByTagName("title");

위의 예는 단지 <제목> 원소 (X) 노드를 반환 있습니다. 모든 <제목> 요소는 XML 문서를 반환하기 위해 사용

xmlDoc.getElementsByTagName("title");

여기서, 해당 xmldoc는 문서 자체 (문서 노드)이다.


DOM 노드리스트 (노드 목록)

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

다음 코드는 사용 () loadXMLDoc를 에 " Books.xml을 한 후, 해당 xmldoc에"저장 <제목>의 목록을 변수 x의 노드 :

xmlDoc=loadXMLDoc("books.xml");

x=xmlDoc.getElementsByTagName("title");

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

y=x[2];

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

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


DOM 노드 목록 길이 (노드 목록 길이)

길이 길이 속성은 노드 목록 (노드 즉, 번호)를 정의합니다.

당신은 노드의 목록을 통해 루프 길이 속성을 사용할 수 있습니다 :

xmlDoc=loadXMLDoc("books.xml");

x=xmlDoc.getElementsByTagName("title");

for (i=0;i<x.length;i++)
{
document.write(x[i].childNodes[0].nodeValue);
document.write("
");
}

»시도

예 설명 :

  1. 사용 loadXMLDoc을 () "에 Books.xml을 해당 xmldoc에"
  2. 모든 <제목> 요소 노드를 가져옵니다
  3. 각 출력값 <TITLE> 텍스트 노드의 소자

노드 유형 (노드 유형)

XML 문서DocumentElement 특성은 루트 노드이다.

노드 이름 속성 노드는 노드의 이름이다.

이는 NodeType 속성 노드는 노드의 유형입니다.

이 튜토리얼의 다음 장에있는 노드의 속성에 대한 자세한 내용을 배울 것입니다.

시험


노드 이송

자식 노드의 루트뿐만 아니라 엘리먼트 노드를 통해 다음 코드 반복 :

xmlDoc=loadXMLDoc("books.xml");

x=xmlDoc.documentElement.childNodes;

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

»시도

예 설명 :

  1. 사용 loadXMLDoc을 () "에 Books.xml을 해당 xmldoc에"
  2. 루트 요소의 가져 오기 자식 노드
  3. 노드 유형은 각각의 자식 노드를 선택합니다. 노드 유형이 "1"인 경우, 노드는 요소
  4. 노드 소자, 출력 노드의 이름이면

관계 탐색 노드

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

xmlDoc=loadXMLDoc("books.xml");

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

for (i=0;i<x.length;i++)
{
if (y.nodeType==1)
{//Process only element nodes (type 1)
document.write(y.nodeName + "
");
}
y=y.nextSibling;
}

»시도
  1. 사용 loadXMLDoc을 () "에 Books.xml을 해당 xmldoc에"
  2. 책 요소의 첫 번째 자식 노드를 가져옵니다
  3. 은 "Y"변수는 책 첫번째 아이의 첫 번째 요소로 설정
  4. 각각의 자식 노드에 대한 노드가 원소이고, 노드 타입은 "1"인 경우, 검사 노드의 유형 (첫 번째 자식 노드로부터 "Y"는 시작)
  5. 노드 소자, 출력 노드의 이름이면
  6. 은 "Y"변수는 다음 형제 노드로 설정하고, 다시 사이클을 실행할