XML DOM 노드 목록
getElementsByTagName()
메서드와 childNodes
속성은 노드 목록을 반환할 수 있습니다。
DOM 노드 목록
사용할 때 childNodes
또는 getElementsByTagName()
属性이나 메서드를 사용할 때 NodeList 객체를 반환합니다。
NodeList 객체는 노드의 목록을 나타내며, XML의 순서와 같은 순서를 가집니다。
노드 목록의 노드는 0부터 시작하는 인덱스 번호로 접근할 수 있습니다。
아래 그림은 books.xml 중 <title> 요소의 노드 목록:

"books.xml" 파일이 xmlDoc 변수에 로드되어 있다고 가정합니다。
이 코드 부분은 "books.xml" 파일에서 title 요소의 노드 목록을 반환합니다:
x = xmlDoc.getElementsByTagName("title");
위의 문장을 실행한 후, x는 NodeList 객체가 됩니다.
이 코드 부분은 노드 목록 (x) 중 첫 번째 <title> 요소의 텍스트를 반환합니다:
예제
var txt = x[0].childNodes[0].nodeValue;
위 문장이 실행된 후에, txt = "雅舍谈吃".
노드 목록 길이
NodeList 객체는 자신의 업데이트를 유지합니다. 요소를 추가하거나 제거하면 목록이 자동으로 업데이트됩니다.
노드 목록의 length
속성은 목록 내 노드의 수입니다.
이 코드는 "books.xml"의 <title> 요소의 수를 반환합니다:
x = xmlDoc.getElementsByTagName('title').length;
위 문장이 실행된 후에,x
의 값이 5입니다.
노드 목록의 길이를 사용하여 목록 내 모든 요소를 순회할 수 있습니다.
이 코드는 length
속성 루프를 사용하여 <title> 요소 목록을 순회합니다:
예제
x = xmlDoc.getElementsByTagName('title'); xLen = x.length; for (i = 0; i < xLen; i++) { txt += (x[i].childNodes[0].nodeValue) + " "; }
예제 설명:
- 추정 books.xml 이미 로드된
xmlDoc
중 - x 변수를 설정하여 모든 title 요소의 노드 목록을 저장합니다
- <title> 요소에서 텍스트 노드의 값을 가져옵니다
DOM 속성 목록(명명 노드 맵)
요소 노드의 attributes
속성은 속성 노드 목록을 반환합니다.
이는 명명 노드 맵(named node map)이라고 불리며, 노드 목록과 유사하지만 메서드와 속성이 다릅니다.
속성 목록도 최신 상태를 유지합니다. 속성을 추가하거나 제거하면 목록이 자동으로 업데이트됩니다.
이 코드는 "books.xml"의 첫 번째 <book> 요소에서 속성 노드 목록을 반환합니다:
x = xmlDoc.getElementsByTagName('book')[0].attributes;
위 코드가 실행된 후에,x.length
속성 개수와 같습니다. 사용할 수 있습니다. x.getNamedItem()
속성 노드를 반환합니다.
이 코드는 첫 번째 책의 "category" 속성 값과 속성 개수를 가져옵니다:
예제
x = xmlDoc.getElementsByTagName("book")[0].attributes; txt = x.getNamedItem("category").nodeValue + " " + x.length;
예제 설명:
- 추정 books.xml 로 로드되었습니다
xmlDoc
중 - 첫 번째 <book> 요소의 모든 속성 목록을 저장하기 위해 x 변수를 설정하십시오
- "category" 속성 값과 속성 목록의 길이를 가져오기