Danh sách nút XML DOM
Danh sách các nút được trả về bằng phương thức getElementsByTagName() và thuộc tính childNodes.
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 sẽ đượ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 cùng thứ tự như trong XML.
Các nút trong danh sách nút được truy cập bằng số chỉ mục bắt đầu từ 0.
Hình ảnh sau đây thể hiện 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 của các thành phần 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):
Sau khi thực hiện câu lệnh trên, txt = "Tiếng Ý hàng ngày".
Độ dài danh sách nút
Đối tượng danh sách nút luôn được cập nhật. Nếu một phần tử bị xóa hoặ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ố 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>:
Ví 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
Hãy tự mình thử »Ví dụ giải thích:
- Giả sử books.xml được tải vào xmlDoc
- Đặt biến x để giữ danh sách nút của tất cả các thành phần 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ề 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.
Một danh sách thuộc tính luôn được cập nhật. Nếu một thuộc tính bị xóa hoặ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ố lượng 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:
Ví dụ
x = xmlDoc.getElementsByTagName("book")[0].attributes;
txt = x.getNamedItem("category").nodeValue + " " + x.length;
Đầu ra:
cooking
1
Hãy tự mình thử »Ví dụ 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
- Lấy giá trị của thuộc tính "category" và độ dài của danh sách thuộc tính