Danh sách Node DOM XML

Danh sách các nút được trả về bởi phương pháp getElementsByTagName() và thuộc tính childNodes.

Thực tế

Ví dụ dưới đây sử dụng tệp XML books.xml.

Hàm loadXMLDoc()Nằm trong JavaScript bên ngoài, được sử dụng để tải tệp XML.

Lấy văn bản từ phần tử <title> đầu tiên
Ví dụ này sử dụng phương pháp getElementsByTagName() để lấy văn bản từ phần tử <title> đầu tiên trong tệp "books.xml".
Lặp qua các nút bằng cách sử dụng thuộc tính length
Ví dụ này sử dụng danh sách nút và thuộc tính length để lặp qua tất cả các phần tử <title> trong tệp "books.xml".
Lấy thuộc tính của phần tử
Ví dụ này sử dụng danh sách thuộc tính để lấy thuộc tính từ phần tử <title> đầu tiên trong tệp "books.xml".

Danh sách Node DOM

Khi sử dụng các thuộc tính hoặc phương pháp như childNodes hoặc getElementsByTagName(), sẽ trả về đối tượng NodeList.

Đối tượng NodeList biểu thị danh sách các nút, theo thứ tự tương tự như trong XML.

Sử dụng chỉ số bắt đầu từ 0 để truy cập các nút trong danh sách nút.

下面的图像表示 "books.xmlHình ảnh sau đây biểu thị "}}

Danh sách node DOM

Mã đoạn sau đây sử dụng loadXMLDoc() "Là danh sách các nút của thẻ <title>:books.xmlChèn "books.xml" vào xmlDoc và trả về "

xmlDoc=loadXMLDoc("books.xml");
"Là danh sách các nút của thẻ title:

x=xmlDoc.getElementsByTagName("title");

Sau khi thực hiện câu lệnh trên, x trở thành một đối tượng NodeList.

Mã đoạn sau từ danh sách các nút x trả về văn bản từ thẻ <title> đầu tiên:

txt=x[0].childNodes[0].nodeValue;

TIY

Sau khi thực hiện câu lệnh trên, txt = "Italian hàng ngày".

Kích thước của NodeList

Thuộc tính length của NodeList sẽ duy trì việc cập nhật của mình. Nếu xóa hoặc thêm các phần tử, danh sách sẽ tự động cập nhật.

Mã đoạn sau đây sử dụng loadXMLDoc() Đặt "books.xml"Tải xmlDoc, và trả về số lượng các thẻ <title> trong "books.xml":

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName('title').length;

Sau khi thực hiện câu lệnh trên, x = 4.

Kích thước của danh sách các nút có thể được sử dụng để lặp qua tất cả các phần tử trong danh sách.

Mã đoạn sau sử dụng thuộc tính length để duyệt qua danh sách các thẻ <title>:

xmlDoc=loadXMLDoc("books.xml");
//Biến x sẽ chứa một danh sách các nút
x=xmlDoc.getElementsByTagName('title');
for (i=0;i<x.length;i++)
{
document.write(x[i].childNodes[0].nodeValue);
document.write("<br />");
}

Kết quả xuất ra:

Harry Potter
Italian hàng ngày
XQuery Kick Start
Học XML

Giải thích ví dụ:

  • Bằng cách sử dụng loadXMLDoc() Đặt "books.xml"Tải xmlDoc
  • Đặt biến x để lưu trữ danh sách các nút của tất cả các thẻ title
  • Chuỗi giá trị từ các nút văn bản của tất cả các thẻ <title>

TIY

DOM Attribute List (Named Node Map)

Thuộc tính attributes của nút phần tử trả về danh sách các nút thuộc tính.

Được gọi là Named Node Map, ngoài một số khác biệt về phương pháp và thuộc tính, nó tương tự như danh sách các nút.

Danh sách thuộc tính sẽ duy trì việc cập nhật của mình. Nếu xóa hoặc thêm thuộc tính, danh sách này sẽ tự động cập nhật.

Mã đoạn sau đây sử dụng loadXMLDoc() Chuyển "books.xml" vào xmlDoc và từ "books.xmlDanh sách các nút thuộc tính của phần tử <book> đầu tiên trong "

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName('book')[0].attributes;

Sau khi mã trên được thực thi, x.length bằng số lượng thuộc tính, có thể sử dụng x.getNamedItem() để trả về nút thuộc tính.

Mã đoạn sau đây hiển thị giá trị thuộc tính "category" của một phần tử book và số lượng thuộc tính:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("book")[0].attributes;
document.write(x.getNamedItem("category").nodeValue);
document.write("<br />" + x.length);

Kết quả xuất ra:

children
1

Giải thích ví dụ:

  • Bằng cách sử dụng loadXMLDoc() Đặt "books.xml"Đang tải xmlDoc"
  • Đặt biến x là danh sách các thuộc tính của tất cả các thuộc tính của phần tử <book> đầu tiên
  • Xuất ra giá trị của thuộc tính "category"
  • Xuất ra độ dài của danh sách thuộc tính

TIY