Danh sách phần tử XML 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>:

Danh sách phần tử DOM

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;

Thử trực tiếp

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) + " ";
}

Thử trực tiếp

Giải thích ví dụ:

  1. Giả sử books.xml đã được tải vào xmlDoc Trung
  2. đặt biến x để lưu danh sách các nút của tất cả các phần tử <title>
  3. 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;

Thử trực tiếp

Giải thích ví dụ:

  1. Giả sử books.xml được tải vào xmlDoc Trung
  2. Đặ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
  3. Lấy giá trị thuộc tính "category" và độ dài của danh sách thuộc tính