Truy cập nút XML DOM
- Trang trước Nút DOM
- Trang tiếp theo Thông tin nút DOM
Bằng cách sử dụng DOM, bạn có thể truy cập vào mỗi nút trong tài liệu XML.
Truy cập vào nút
Bạn có thể truy cập vào nút theo ba cách:
- Bằng cách sử dụng phương thức getElementsByTagName()
- Bằng cách lặp qua (duyệt qua) cây nút
- Bằng cách sử dụng mối quan hệ giữa các nút để di chuyển trong cây nút
Phương thức getElementsByTagName()
getElementsByTagName()
Trả về tất cả các phần tử có tên thẻ được chỉ định.
Cú pháp
node.getElementsByTagName("tagname");
Thực hành
Ví dụ sau trả về tất cả các phần tử <title> dưới phần tử x:
x.getElementsByTagName("title");
Lưu ý, ví dụ trên chỉ trả về các phần tử <title> dưới nút x. Để trả về tất cả các phần tử <title> trong tài liệu XML, hãy sử dụng:
xmlDoc.getElementsByTagName("title");
Ở đây,xmlDoc
là chính văn bản tài liệu (nút tài liệu).
Danh sách các phần tử DOM
getElementsByTagName()
方法返回节点列表(node list)。节点列表是节点的数组。
Phương thức này trả về danh sách các node (node list). Danh sách các node là một mảng các node.
x = xmlDoc.getElementsByTagName("title");
Bạn có thể truy cập các phần tử <title> trong x thông qua số thứ tự chỉ mục. Nếu muốn truy cập phần tử thứ ba <title>, bạn có thể viết như sau:
y = x[2];Chú ý:
Chỉ số bắt đầu từ 0.
Bạn có thể sử dụng
Độ dài của danh sách các node DOM
Thuộc tính để định nghĩa độ dài của danh sách các node (số lượng node). Bạn có thể sử dụng
length
Thực hành
Thuộc tính để lặp qua danh sách các node: for (i = 0; i < x.length; i++) { var x = xmlDoc.getElementsByTagName("title"); }
// Ở đây có thể viết mã xử lý từng node
Loại node Node của tài liệu XML
documentElement
Thuộc tính của node là tên của node. Thuộc tính là node gốc.
nodeName
Thuộc tính của node là tên của node. nodeType
Thuộc tính là loại của node.
Bạn sẽ học thêm về các thuộc tính của node trong chương tiếp theo của hướng dẫn này.
Lặp qua các node
Mã dưới đây lặp qua các con node con của node gốc (cũng là các node element):
Thực hành
txt = ""; x = xmlDoc.documentElement.childNodes; for (i = 0; i < x.length; i++) { // Chỉ xử lý các node element (loại 1) if (x[i].nodeType == 1) { txt += x[i].nodeName + "<br>"; } }
Giải thích ví dụ:
- Giả sử bạn đã nạp "books.xml"Nạp vào
xmlDoc
- Lấy các con node con của node gốc (xmlDoc)
- Kiểm tra loại của mỗi nút con. Nếu loại nút là "
1
" là node element - Nếu là node element, thì xuất tên của node
Di chuyển qua các mối quan hệ node
Mã dưới đây sử dụng mối quan hệ giữa các node để di chuyển trong cây node:
Thực hành
x = xmlDoc.getElementsByTagName("book")[0]; xlen = x.childNodes.length; y = x.firstChild; txt = ""; for (i = 0; i < xlen; i++) { // Chỉ xử lý các node element (loại 1) if (y.nodeType == 1) { txt += y.nodeName + "<br>"; } y = y.nextSibling; }
Giải thích ví dụ:
- Giả sử bạn đã nạp "books.xml"Nạp vào
xmlDoc
- Lấy các con node con của phần tử đầu tiên của book
- Đặt "y" thành nút con đầu tiên của phần tử "book" đầu tiên
- Đối với mỗi nút con (từ nút con đầu tiên "
y
" bắt đầu): - Kiểm tra loại của mỗi nút con. Nếu loại nút là "
1
" thì nó là nút phần tử - Nếu là nút phần tử, thì xuất tên của nút đó
- Đặt "
y
"VARIABLE" được đặt thành nút đồng cấp tiếp theo, và chạy vòng lặp lại
- Trang trước Nút DOM
- Trang tiếp theo Thông tin nút DOM