Ví dụ về XPath
Chúng ta hãy thử tìm hiểu một số cú pháp XPath cơ bản bằng cách xem một số ví dụ.
Tài liệu Ví dụ về XML
Chúng tôi sẽ sử dụng tài liệu XML sau trong các ví dụ dưới đây.
"books.xml":
<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book category="cooking">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="children">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="web">
<title lang="en">XQuery Kick Start</title>
<author>James McGovern</author>
<author>Per Bothner</author>
<author>Kurt Cagle</author>
<author>James Linn</author>
<author>Vaidyanathan Nagarajan</author>
<year>2003</year>
<price>49.99</price>
</book>
<book category="web">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>
Xem tệp "books.xml" trong trình duyệt của bạn .
Đang tải tài liệu XML
Việc sử dụng đối tượng XMLHttpRequest để tải các tài liệu XML được hỗ trợ trong tất cả các trình duyệt hiện đại.
var xmlhttp = new XMLHttpRequest();
Có thể tìm thấy mã cho các trình duyệt cũ hơn (IE5 và IE6) trong hướng dẫn AJAX.
Chọn nút
Thật không may, có những cách khác nhau để xử lý XPath trong các trình duyệt khác nhau.
Chrome, Firefox, Edge, Opera và Safari sử dụng phương thức eval () để chọn các nút:
xmlDoc.evaluate(xpath, xmlDoc, null, XPathResult.ANY_TYPE,null);
Internet Explorer sử dụng phương thức selectNodes () để chọn nút:
xmlDoc.selectNodes(xpath);
Trong các ví dụ của chúng tôi, chúng tôi đã bao gồm mã sẽ hoạt động với hầu hết các trình duyệt chính.
Chọn tất cả các tiêu đề
Ví dụ sau chọn tất cả các nút tiêu đề:
Thí dụ
/bookstore/book/title
Chọn tên cuốn sách đầu tiên
Ví dụ sau chọn tiêu đề của nút sách đầu tiên trong phần tử hiệu sách:
Thí dụ
/bookstore/book[1]/title
Chọn tất cả các mức giá
Ví dụ sau chọn văn bản từ tất cả các nút giá:
Thí dụ
/bookstore/book/price[text()]
Chọn các nút giá có giá> 35
Ví dụ sau chọn tất cả các nút giá có giá cao hơn 35:
Thí dụ
/bookstore/book[price>35]/price
Chọn các nút tiêu đề có giá> 35
Ví dụ sau chọn tất cả các nút tiêu đề có giá cao hơn 35:
Thí dụ
/bookstore/book[price>35]/title