Danh sách phần tử XML DOM
- Trang trước Thông tin node DOM
- Trang tiếp theo Truy vấn node DOM
getElementsByTagName()
phương thức và childNodes
thuộc tính có thể trả về danh sách các nút.
Danh sách phần tử DOM
Khi sử dụng childNodes
hoặc getElementsByTagName()
Khi gọi các thuộc tính hoặc phương thức, sẽ trả về đối tượng NodeList.
Đối tượng NodeList biểu diễn danh sách các nút, thứ tự tương ứng với thứ tự trong XML.
Các nút trong danh sách NodeList có thể truy cập được thông qua chỉ số bắt đầu từ 0.
Hình dưới đây biểu diễn books.xml Danh sách các nút của phần tử <title>:

Giả sử tệp "books.xml" đã được tải vào biến xmlDoc.
Mã đoạn này trả về danh sách các nút của phần tử title trong tệp "books.xml":
x = xmlDoc.getElementsByTagName("title");
Sau khi thực hiện xong các câu lệnh trên, x trở thành đối tượng NodeList.
mã đoạn sau trả về văn bản của phần tử <title> đầu tiên trong danh sách nút (x):
thực instance
var txt = x[0].childNodes[0].nodeValue;
Sau khi thực hiện các câu lệnh trên, txt = "Nhà ăn của tôi".
dài của danh sách các nút
mục tiêu NodeList sẽ tự động cập nhật. Nếu xóa hoặc thêm phần tử, danh sách sẽ tự động cập nhật.
danh sách các nút length
thuộc tính là số lượng nút trong danh sách.
mã này trả về số lượng phần tử <title> trong tệp "books.xml":
x = xmlDoc.getElementsByTagName('title').length;
Sau khi thực hiện câu lệnh trên,x
của nó là 5.
dài của danh sách nút có thể được sử dụng để lặp qua tất cả các phần tử trong danh sách.
mã này sử dụng length
vòng lặp thuộc tính để duyệt qua danh sách các phần tử <title>:
thực instance
x = xmlDoc.getElementsByTagName('title'); xLen = x.length; for (i = 0; i < xLen; i++) { txt += (x[i].childNodes[0].nodeValue) + " "; }
Giải thích ví dụ:
- Giả sử books.xml đã được tải vào
xmlDoc
Trung - đặt biến x để lưu danh sách các nút của tất cả các phần tử <title>
- lấy giá trị của nút văn bản từ phần tử <title>
Danh sách thuộc tính DOM (bản đồ nút tên)
của phần tử attributes
trả về danh sách các nút thuộc tính.
được gọi là bản đồ nút tên (named node map), tương tự như danh sách nút nhưng phương pháp và thuộc tính khác nhau.
danh sách thuộc tính cũng sẽ được cập nhật liên tục. Nếu xóa hoặc thêm thuộc tính, danh sách sẽ tự động cập nhật.
mã này trả về danh sách các nút thuộc tính từ phần tử <book> đầu tiên trong tệp "books.xml":
x = xmlDoc.getElementsByTagName('book')[0].attributes;
Sau khi mã trên được thực hiện,x.length
bằng số lượng thuộc tính, có thể sử dụng x.getNamedItem()
trả về một nút thuộc tính.
mã này lấy giá trị thuộc tính "category" của cuốn sách đầu tiên và số lượng thuộc tính:
thực instance
x = xmlDoc.getElementsByTagName("book")[0].attributes; txt = x.getNamedItem("category").nodeValue + " " + x.length;
Giải thích ví dụ:
- Giả sử books.xml được tải vào
xmlDoc
Trung - Đặt biến x để lưu lại danh sách các thuộc tính của phần tử <book> đầu tiên
- Lấy giá trị thuộc tính "category" và độ dài của danh sách thuộc tính
- Trang trước Thông tin node DOM
- Trang tiếp theo Truy vấn node DOM