Ví dụ XPath
- Trang trước Toán tử XPath
- Trang sau Giới thiệu về XSLT
Trong phần này, hãy cùng tìm hiểu một số cú pháp cơ bản của XPath thông qua các ví dụ.
Ví dụ XML
Chúng ta sẽ sử dụng tài liệu XML này trong các 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 sử dụng 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ổ điển (IE 5 và 6):
var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")
Chọn nút
Đ遗憾的是, 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ã áp dụng cho 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 từ 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 từ tài liệu XML:
xmlDoc.evaluate(xpath, xmlDoc, null, XPathResult.ANY_TYPE,null);
Chọn title của book đầu tiên
Dưới đây là ví dụ chọn title của nút book đầu tiên dưới bookstore:
/bookstore/book[1]/title
Có một vấn đề ở đây. Ví dụ trên trong IE và các trình duyệt khác cho ra kết quả khác nhau.
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.
Dưới đây là ví dụ chọn title của nút book đầu tiên dưới bookstore:
xml.setProperty("SelectionLanguage","XPath"); xml.selectNodes("/bookstore/book[1]/title");
Chọn tất cả các giá
Dưới đây là ví dụ chọn tất cả các văn bản trong các 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 sau Giới thiệu về XSLT