Truy cập nút XML DOM
- Trang trước Thuộc tính và phương thức DOM
- Trang tiếp theo Thông tin về node 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.
Ví dụ
Ví dụ dưới đây sử dụng tệp XML books.xml.
Chức năng loadXMLDoc()nằm ngoài JavaScript, được sử dụng để tải tệp XML.
- Truy cập vào nút bằng cách sử dụng chỉ số trong danh sách nút
- Ví dụ này sử dụng phương thức getElementsByTagname() để lấy phần tử <title> thứ ba trong "books.xml".
- Lặp qua các phần tử bằng thuộc tính length
- Ví dụ này sử dụng thuộc tính length để lặp qua tất cả các phần tử <title> trong "books.xml".
- Xem loại nút của phần tử
- Ví dụ này sử dụng thuộc tính nodeType để lấy loại nút của phần tử gốc trong "books.xml".
- Lặp qua các phần tử nút
- Ví dụ này sử dụng thuộc tính nodeType để xử lý các phần tử nút trong "books.xml".
- Lặp qua các phần tử nút bằng cách sử dụng mối quan hệ của các nút
- Ví dụ này sử dụng thuộc tính nodeType và thuộc tính nextSibling để xử lý các phần tử nút trong "books.xml".
Truy cập vào nút
Bạn có thể truy cập vào nút bằng ba phương pháp sau:
- 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");
Ví dụ
Ví dụ dưới đây trả về tất cả các element <title> dưới element x:
x.getElementsByTagName("title");
Lưu ý rằng ví dụ trên chỉ trả về các element <title> dưới node x. Để trả về tất cả các element <title> trong tài liệu XML, hãy sử dụng:
xmlDoc.getElementsByTagName("title");
Ở đây, xmlDoc chính là tài liệu (node tài liệu).
DOM Node List
getElementsByTagName() để trả về danh sách node (node list). Danh sách node là một mảng của các node.
Mã dưới đây sử dụng loadXMLDoc() Đặt "books.xml"Tải xmlDoc vào, sau đó lưu danh sách các node <title> trong biến x:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("title");
Bạn có thể truy cập vào các element <title> trong x bằng cách sử dụng chỉ số. Để truy cập vào element thứ ba <title>, bạn có thể viết:
y=x[2];
Ghi chú:Chỉ số bắt đầu từ 0.
Trong phần sau của hướng dẫn này, bạn sẽ học thêm về Node List.
DOM Node List Length
Thuộc tính length định nghĩa độ dài của danh sách node (tức là số lượng của các node).
Bạn có thể lặp lại một danh sách node bằng cách sử dụng thuộc tính length:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("title"); for (i=0;i<x.length;i++) { document.write(x[i].childNodes[0].nodeValue); document.write("<br />"); }
Ví dụ minh họa:
- Sử dụng loadXMLDoc() Đặt "books.xml"Tải xmlDoc
- Lấy tất cả các element <title>
- Xuất ra giá trị của các node text của các element <title>
Loại Node
XML tài liệu documentElement Thuộc tính là node gốc.
Thuộc tính của node nodeName Thuộc tính là tên của node.
Thuộc tính 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 phần tiếp theo của hướng dẫn này.
Thảo luận node
Mã dưới đây lặp lại các node con của node gốc, cũng là các node element:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.documentElement.childNodes; for (i=0;i<x.length;i++) { if (x[i].nodeType==1) {//Chỉ xử lý các node phần tử (loại 1) document.write(x[i].nodeName); document.write("<br />"); } }
Ví dụ minh họa:
- Bằng cách sử dụng loadXMLDoc() Đặt "books.xml"Chuyển đổi xmlDoc"
- Lấy các node con của element gốc
- Kiểm tra loại节点 của mỗi node con. Nếu loại node là "1", thì nó là node element
- Nếu là node phần tử, thì xuất tên của node đó
Di chuyển bằng cách sử dụng mối quan hệ giữa các node
Mã dưới đây sử dụng mối quan hệ giữa các node để di chuyển trong cây node:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("book")[0].childNodes; y=xmlDoc.getElementsByTagName("book")[0].firstChild; for (i=0;i<x.length;i++) { if (y.nodeType==1) {//Chỉ xử lý các node phần tử (loại 1) document.write(y.nodeName + "<br />"); } y=y.nextSibling; }
- Bằng cách sử dụng loadXMLDoc() Đặt "books.xml"Chuyển đổi xmlDoc"
- Lấy node con đầu tiên của phần tử đầu tiên có tên là "book"
- Đặt biến "y" là node con đầu tiên của phần tử đầu tiên có tên là "book"
- Kiểm tra loại node của mỗi node con, nếu loại node là "1", thì là node phần tử
- Nếu là node phần tử, thì xuất tên của node đó
- Đặt biến "y" là node đồng cấp tiếp theo, và chạy vòng lặp lại
- Trang trước Thuộc tính và phương thức DOM
- Trang tiếp theo Thông tin về node DOM