Danh sách nút DOM XML
Một danh sách các nút được trả về bởi phương thức getElementsByTagName () và thuộc tính childNodes.
Hãy tự mình thử - Ví dụ
Các ví dụ dưới đây sử dụng tệp XML books.xml .
Ví dụ này sử dụng phương thức getElementsByTagName () để lấy văn bản từ phần tử <title> đầu tiên trong "books.xml".
Ví dụ này sử dụng danh sách nút và thuộc tính độ dài để lặp qua tất cả các phần tử <title> trong "books.xml"
Ví dụ này sử dụng danh sách thuộc tính để lấy thuộc tính từ phần tử <book> đầu tiên trong "books.xml".
Danh sách nút DOM
Khi sử dụng các thuộc tính hoặc phương thức như childNodes hoặc getElementsByTagName (), một đối tượng danh sách nút được trả về.
Đối tượng danh sách nút đại diện cho một danh sách các nút, theo thứ tự như trong XML.
Các nút trong danh sách nút được truy cập với số chỉ mục bắt đầu từ 0.
Hình ảnh sau đại diện cho danh sách nút của các phần tử <title> trong " books.xml ":
Giả sử "books.xml" được tải vào biến xmlDoc.
Đoạn mã này trả về danh sách nút gồm các phần tử tiêu đề trong "books.xml":
x = xmlDoc.getElementsByTagName("title");
Sau khi thực hiện câu lệnh trên, x là một đối tượng danh sách nút.
Đoạn mã sau trả về văn bản từ phần tử <title> đầu tiên trong danh sách nút (x):
Thí dụ
var txt = x[0].childNodes[0].nodeValue;
Sau khi thực hiện câu lệnh trên, txt = "Everyday Italian".
Độ dài danh sách nút
Một đối tượng danh sách nút luôn tự cập nhật. Nếu một phần tử bị xóa hoặc được thêm vào, danh sách sẽ tự động được cập nhật.
Thuộc tính độ dài của danh sách nút là số lượng nút trong danh sách.
Đoạn mã này trả về số lượng phần tử <title> trong "books.xml":
x = xmlDoc.getElementsByTagName('title').length;
Sau khi thực hiện câu lệnh trên, giá trị của x sẽ là 4.
Độ 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.
Đoạn mã này sử dụng thuộc tính length để lặp qua danh sách các phần tử <title>:
Thí dụ
x = xmlDoc.getElementsByTagName('title');
xLen = x.length;
for (i = 0; i <xLen; i++) {
txt += x[i].childNodes[0].nodeValue) + " ";
}
Đầu ra:
Everyday Italian
Harry Potter
XQuery Kick Start
Learning XML
Ví dụ được giải thích:
- Giả sử " books.xml " được tải vào xmlDoc
- Đặt biến x để chứa danh sách nút gồm tất cả các phần tử tiêu đề
- Thu thập các giá trị nút văn bản từ các phần tử <title>
Danh sách thuộc tính DOM (Bản đồ nút được đặt tên)
Thuộc tính thuộc tính của một nút phần tử trả về một danh sách các nút thuộc tính.
Đây được gọi là bản đồ nút được đặt tên, và tương tự như danh sách nút, ngoại trừ một số khác biệt về phương thức và thuộc tính.
Danh sách thuộc tính luôn tự cập nhật. Nếu một thuộc tính bị xóa hoặc được thêm vào, danh sách sẽ tự động được cập nhật.
Đoạn 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 "books.xml":
x = xmlDoc.getElementsByTagName('book')[0].attributes;
Sau khi thực thi đoạn mã trên, x.length = là số thuộc tính và x.getNamedItem () có thể được sử dụng để trả về một nút thuộc tính.
Đoạn mã này nhận giá trị của thuộc tính "danh mục" và số lượng thuộc tính của một cuốn sách:
Thí dụ
x = xmlDoc.getElementsByTagName("book")[0].attributes;
txt = x.getNamedItem("category").nodeValue + " " + x.length;
Đầu ra:
cooking
1
Ví dụ được giải thích:
- Giả sử " books.xml " được tải vào xmlDoc
- Đặt biến x để chứa danh sách tất cả các thuộc tính của phần tử <book> đầu tiên
- Nhận giá trị của thuộc tính "category" và độ dài của danh sách thuộc tính