Ví dụ XPath
- Trang trước Toán tử XPath
- Trang tiếp theo Tóm tắt XPath
Trong phần này, hãy cùng học một số cú pháp cơ bản của XPath qua các ví dụ.
Tài liệu XML mẫu
Chúng ta sẽ sử dụng tài liệu XML này trong ví dụ sau:
"books.xml" :
<?xml version="1.0" encoding="ISO-8859-1"?> <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>
Tải tài liệu XML
Tất cả các trình duyệt hiện đại đều hỗ trợ phương thức XMLHttpRequest để tải tài liệu XML.
Mã cho hầu hết các trình duyệt hiện đại:
var xmlhttp=new XMLHttpRequest()
Mã cho trình duyệt Microsoft cũ (IE 5 và 6):
var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")
Chọn các nút
Thật không may, Internet Explorer và các cách xử lý XPath khác nhau.
Trong ví dụ của chúng ta, bao gồm mã phù hợp với hầu hết các trình duyệt phổ biến.
Internet Explorer sử dụng phương thức selectNodes() để chọn các nút trong tài liệu XML:
xmlDoc.selectNodes(xpath);
Firefox, Chrome, Opera và Safari sử dụng phương thức evaluate() để chọn các nút trong tài liệu XML:
xmlDoc.evaluate(xpath, xmlDoc, null, XPathResult.ANY_TYPE, null);
Chọn tất cả các nút title
Dưới đây là ví dụ chọn tất cả các nút title:
/bookstore/book/title
Chọn title của book đầu tiên
Ví dụ dưới đây chọn nút title của phần tử bookstore đầu tiên:
/bookstore/book[1]/title
Có một vấn đề ở đây. Ví dụ trên xuất ra kết quả khác nhau trong IE và các trình duyệt khác.
IE5 và các phiên bản cao hơn coi [0] là nút đầu tiên, trong khi theo tiêu chuẩn W3C, nó nên là [1].
Để giải quyết vấn đề [0] và [1] trong IE5+, có thể thiết lập ngôn ngữ chọn (SelectionLanguage) cho XPath.
Ví dụ dưới đây chọn nút title của phần tử bookstore đầu tiên:
xml.setProperty("SelectionLanguage","XPath"); xml.selectNodes("/bookstore/book[1]/title");
Chọn tất cả các giá
Ví dụ dưới đây chọn tất cả các văn bản trong nút price:
/bookstore/book/price/text()
Chọn các nút price có giá cao hơn 35
Ví dụ dưới đây chọn tất cả các nút price có giá cao hơn 35:
/bookstore/book[price>35]/price
Chọn các nút title có giá cao hơn 35
Ví dụ dưới đây chọn tất cả các nút title có giá cao hơn 35:
/bookstore/book[price>35]/title
- Trang trước Toán tử XPath
- Trang tiếp theo Tóm tắt XPath