Chân của XPath (Axes)
- Trang trước Ngữ pháp XPath
- Trang tiếp theo Toán tử XPath
Tài liệu ví dụ XML
Chúng ta sẽ sử dụng tài liệu XML này trong ví dụ dưới đây:
<?xml version="1.0" encoding="ISO-8859-1"?> <bookstore><title lang="eng">Harry Potter</title> <price>29.99</price> </book> <title lang="eng">Learning XML</title> <price>39.95</price> </book> </bookstore>
Trục XPath
Trục có thể định nghĩa tập hợp các nút so với phần tử hiện tại. | Kết quả |
---|---|
Tên trục | ancestor |
Chọn tất cả các phần tử tổ tiên, cha, tổ phụ của phần tử hiện tại. | ancestor-or-self |
Chọn tất cả các phần tử tổ tiên, cha, tổ phụ và phần tử hiện tại. | Chọn tất cả các thuộc tính của phần tử hiện tại. |
attribute | Chọn tất cả các con phần tử của phần tử hiện tại. |
child | descendant |
Chọn tất cả các phần tử con, cháu của phần tử hiện tại. | descendant-or-self |
Chọn tất cả các phần tử con, cháu và phần tử hiện tại của phần tử hiện tại. | following |
Chọn tất cả các phần tử sau dấu đóng của phần tử hiện tại trong tài liệu. | namespace |
Chọn tất cả các phần tử không gian tên của phần tử hiện tại. | parent |
Chọn phần tử cha của phần tử hiện tại. | preceding |
Chọn tất cả các phần tử trước dấu mở của phần tử hiện tại trong tài liệu. | preceding-sibling |
Chọn tất cả các phần tử cùng cấp trước phần tử hiện tại. | self |
Chọn nút hiện tại.
Biểu thức đường dẫn vị trí
Đường dẫn vị trí có thể là tuyệt đối hoặc tương đối.
Đường dẫn vị trí tuyệt đối bắt đầu từ dấu gạch chéo ngang ( / ), trong khi đường dẫn vị trí tương đối không như vậy. Trong hai trường hợp này, đường dẫn vị trí đều bao gồm một hoặc nhiều bước, mỗi bước được dấu gạch chéo chia cách:
/step/step/...
Đường dẫn vị trí tương đối:
step/step/...
Mỗi bước đều được tính toán dựa trên các nút trong tập hợp nút hiện tại.
Bước (step) bao gồm:
- Trục (axis)
- Định nghĩa mối quan hệ cây giữa nút đã chọn và nút hiện tại
- Thử nghiệm nút (node-test)
- Nhận diện các nút trong một trục cụ thể
- Không có hoặc nhiều định ngữ (predicate)
- Tinh chỉnh sâu hơn tập hợp các nút đã chọn
Cú pháp bước:
Tên trục::thử nghiệm[định ngữ]
Mô hình
Ví dụ | Kết quả |
---|---|
child::book | Chọn tất cả các phần tử book thuộc con của phần tử hiện tại. |
attribute::lang | Chọn thuộc tính lang của phần tử hiện tại. |
child::* | Chọn tất cả các con phần tử của phần tử hiện tại. |
attribute::* | Chọn tất cả các thuộc tính của phần tử hiện tại. |
child::text() | Chọn tất cả các con văn bản của phần tử hiện tại. |
child::node() | Chọn tất cả các con của phần tử hiện tại. |
descendant::book | Chọn tất cả các phần tử con book của nút hiện tại |
ancestor::book | Chọn tất cả các bậc tổ tiên book của nút hiện tại |
ancestor-or-self::book | Chọn tất cả các bậc tổ tiên book của nút hiện tại và nút hiện tại (nếu nút hiện tại là nút book) |
child::*/child::price | Chọn tất cả các phần tử con price của nút hiện tại. |
- Trang trước Ngữ pháp XPath
- Trang tiếp theo Toán tử XPath