Danh sách Node DOM XML
- Trang trước Thông tin nút DOM
- Trang tiếp theo DOM duyệt các nút
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ị "}}

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;
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>
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
- Trang trước Thông tin nút DOM
- Trang tiếp theo DOM duyệt các nút