Thuộc tính và phương thức XML DOM

Thuộc tính và phương pháp định nghĩa giao diện lập trình cho XML DOM.

Ví dụ

Ví dụ dưới đây sử dụng tệp XML books.xml.

Hàm loadXMLDoc()Nằm ở phần JavaScript bên ngoài, được sử dụng để tải tệp XML.

Hàm loadXMLString()Nằm ở phần JavaScript bên ngoài, được sử dụng để tải chuỗi XML.

Tải và phân tích cú pháp tệp XML
Tải và phân tích cú pháp chuỗi XML

Giao diện lập trình

DOM mô phỏng XML thành một loạt giao diện nút. Có thể truy cập các nút bằng JavaScript hoặc ngôn ngữ lập trình khác. Trong hướng dẫn này, chúng ta sử dụng JavaScript.

Giao diện lập trình DOM được định nghĩa bằng một bộ tiêu chuẩn các thuộc tính và phương pháp.

Thuộc tínhThường xuyên sử dụng theo cách "đó là gì" (ví dụ tên nút là "book").

Phương thứcThường được sử dụng theo cách "làm điều gì đó với một thứ gì đó" (ví dụ: xóa nút "book").

Thuộc tính XML DOM

Một số thuộc tính DOM điển hình:

  • x.nodeName - Tên của x
  • x.nodeValue - Giá trị của x
  • x.parentNode - Nút cha của x
  • x.childNodes - Các con nút của x
  • x.attributes - Các thuộc tính của x

Chú thích:Trong danh sách trên, x là một đối tượng nút.

Phương thức XML DOM

  • x.getElementsByTagName(name) - Lấy tất cả các phần tử có tên thẻ đặc định
  • x.appendChild(node) - Chèn con nút vào x
  • x.removeChild(node) - Xóa con nút từ x

Chú thích:Trong danh sách trên, x là một đối tượng nút.

Ví dụ

Mã JavaScript để lấy văn bản từ phần tử <title> trong books.xml:

txt=xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue

Sau khi thực hiện câu lệnh này, giá trị được lưu trữ trong txt là "Harry Potter".

Giải thích:

  • xmlDoc - XML DOM được tạo bởi bộ phân tích
  • getElementsByTagName("title")[0] - Phần tử <title> đầu tiên
  • childNodes[0] - Đầu tiên của phần tử <title> (nút văn bản)
  • nodeValue - Giá trị của nút (văn bản chính nó)

Trong ví dụ trên, getElementsByTagName là phương thức, trong khi childNodes và nodeValue là thuộc tính.

Phân tích cú pháp tệp XML - ví dụ đa trình duyệt

Mã đoạn sau sử dụng hàm loadXMLDoc để books.xml Tải vào bộ phân tích XML và hiển thị dữ liệu đầu tiên của book:

xmlDoc=loadXMLDoc("books.xml");
document.write(xmlDoc.getElementsByTagName("title"))
[0].childNodes[0].nodeValue);
document.write("<br />");
document.write(xmlDoc.getElementsByTagName("author"))
[0].childNodes[0].nodeValue);
document.write("<br />");
document.write(xmlDoc.getElementsByTagName("year"))
[0].childNodes[0].nodeValue);

Kết quả xuất ra:

Harry Potter
J K. Rowling
2005

TIY

Trong ví dụ trên, chúng ta sử dụng childNodes[0] cho mỗi nút văn bản, mặc dù mỗi phần tử chỉ có một nút văn bản. Điều này là do phương thức getElementsByTagName() luôn trả về một mảng.

Phân tích cú pháp chuỗi XML - ví dụ đa trình duyệt

Mã đoạn sau tải và phân tích cú pháp một chuỗi XML:

Mã đoạn sau sử dụng hàm loadXMLString để books.xml Tải bộ phân tích XML và hiển thị dữ liệu đầu tiên của book:

text="<bookstore>"
text=text+"<book>";
text=text+"<title>Harry Potter</title>";
text=text+"<author>J K. Rowling</author>";
text=text+"<year>2005</year>";
text=text+"</book>";
text=text+"</bookstore>";
xmlDoc=loadXMLString(text);
document.write(xmlDoc.getElementsByTagName("title"))
[0].childNodes[0].nodeValue);
document.write("<br />");
document.write(xmlDoc.getElementsByTagName("author"))
[0].childNodes[0].nodeValue);
document.write("<br />");
document.write(xmlDoc.getElementsByTagName("year"))
[0].childNodes[0].nodeValue);

Kết quả xuất ra:

Harry Potter
J K. Rowling
2005

TIY