Ngữ pháp XPath
- Trang trước Nút XPath
- Trang tiếp theo Trục XPath
XPath sử dụng biểu thức đường dẫn để chọn các nút hoặc tập hợp nút trong tài liệu XML. Các nút được chọn thông qua đường dẫn (path) hoặc bước (steps).
Văn bản thực tế XML
Chúng tôi sẽ sử dụng tài liệu XML này trong các ví dụ dưới đây.
<?xml version="1.0" encoding="ISO-8859-1"?> <bookstore> <book> <title lang="eng">Harry Potter</title> <price>29.99</price> </book> <book> <title lang="eng">Learning XML</title> <price>39.95</price> </book> </bookstore>
Chọn nút
XPath sử dụng biểu thức đường dẫn để chọn nút trong tài liệu XML. Các nút được chọn thông qua đường dẫn hoặc bước.
Dưới đây là một số biểu thức đường dẫn hữu ích:
Biểu thức | Mô tả |
---|---|
nodename | Chọn tất cả các nút con của nút này. |
/ | Chọn từ nút gốc. |
// | Chọn các nút trong tài liệu mà khớp với lựa chọn hiện tại, không quan tâm đến vị trí của chúng. |
. | Chọn nút hiện tại. |
.. | Chọn nút bậc cha của nút hiện tại. |
@ | Chọn thuộc tính. |
Mô hình
Trong bảng dưới đây, chúng tôi đã liệt kê một số biểu thức đường dẫn và kết quả của biểu thức:
Biểu thức đường dẫn | Kết quả |
---|---|
bookstore | Chọn tất cả các nút con của phần tử bookstore. |
/bookstore |
Chọn phần tử gốc bookstore. Ghi chú: Nếu đường dẫn bắt đầu bằng dấu chéo ( / ), thì đường dẫn này luôn đại diện cho đường dẫn tuyệt đối đến một phần tử! |
bookstore/book | Chọn tất cả các phần tử book thuộc phần tử con của bookstore. |
//book | Chọn tất cả các phần tử con book, bất kể chúng ở vị trí nào trong tài liệu. |
bookstore//book | Chọn tất cả các phần tử con book của phần tử bookstore, bất kể chúng nằm ở vị trí nào dưới bookstore. |
//@lang | Chọn tất cả các thuộc tính có tên là lang. |
Điều kiện (Predicates)
Điều kiện được sử dụng để tìm kiếm một nút cụ thể hoặc một nút chứa một giá trị cụ thể.
Điều kiện được đặt trong dấu ngoặc vuông.
Mô hình
Trong bảng dưới đây, chúng tôi liệt kê một số biểu thức đường dẫn có điều kiện và kết quả của chúng:
Biểu thức đường dẫn | Kết quả |
---|---|
/bookstore/book[1] | Chọn phần tử book đầu tiên là con của phần tử bookstore. |
/bookstore/book[last()] | Chọn phần tử book cuối cùng là con của phần tử bookstore. |
/bookstore/book[last()-1] | Chọn phần tử book倒数第二个 là con của phần tử bookstore. |
/bookstore/book[position()<3] | Chọn hai phần tử book đầu tiên là con của phần tử bookstore. |
//title[@lang] | Chọn tất cả các phần tử title có thuộc tính tên là lang. |
//title[@lang='eng'] | Chọn tất cả các phần tử title có thuộc tính lang với giá trị là eng. |
/bookstore/book[price>35.00] | Chọn tất cả các phần tử book trong phần tử bookstore, và giá trị của phần tử price phải lớn hơn 35.00. |
/bookstore/book[price>35.00]/title | Chọn tất cả các phần tử title của phần tử book trong phần tử bookstore, và giá trị của phần tử price phải lớn hơn 35.00. |
Chọn các nút không biết
Biểu tượng XPath có thể được sử dụng để chọn các phần tử XML không biết.
Biểu tượng | Mô tả |
---|---|
* | Khớp với bất kỳ nút phần tử nào. |
@* | Khớp với bất kỳ nút thuộc tính nào. |
node() | Khớp với bất kỳ loại nút nào. |
Mô hình
Trong bảng dưới đây, chúng tôi liệt kê một số biểu thức đường dẫn và kết quả của chúng:
Biểu thức đường dẫn | Kết quả |
---|---|
/bookstore/* | Chọn tất cả các phần tử con của phần tử bookstore. |
//* | Chọn tất cả các phần tử trong tài liệu. |
//title[@*] | Chọn tất cả các phần tử title có thuộc tính. |
Chọn nhiều đường dẫn
Bằng cách sử dụng toán tử “|” trong biểu thức đường dẫn, bạn có thể chọn nhiều đường dẫn.
Mô hình
Trong bảng dưới đây, chúng tôi liệt kê một số biểu thức đường dẫn và kết quả của chúng:
Biểu thức đường dẫn | Kết quả |
---|---|
//book/title | //book/price | Chọn tất cả các phần tử title và price của phần tử book. |
//title | //price | Chọn tất cả các phần tử title và price trong tài liệu. |
/bookstore/book/title | //price | Chọn tất cả các phần tử title thuộc phần tử book của phần tử bookstore, cũng như tất cả các phần tử price trong tài liệu. |
- Trang trước Nút XPath
- Trang tiếp theo Trục XPath