1 XPath nâng cao & tối ưu
Xpath nhiều lúc sẽ không thể truy cập được theo cách thông thường, mà đòi hỏi chúng ta phải khéo léo kết hợp các nodes lại với nhau
XPath Axes là tập hợp rất nhiều cú pháp hỗ trợ truy vấn đến các mối quan hệ trong Nodes. Và mục đích cuối là tìm đến element mà ta đang tìm kiếm.
1.1 Following
Cú pháp: //div[@class='mobile']//following::span
Cú pháp này cho phép lấy ra tất cả các thẻ span trong mã nguồn nằm sau một thẻ div có class là ‘mobile’

1.2 Preceding
Cú pháp: //div[@class='mobile']//preceding::span
Cú pháp này cho phép lấy ra tất cả các thẻ span trong mã nguồn nằm trước một thẻ div có class là ‘mobile’.

1.3 Descendant
Cú pháp: //div[@class='mobile']//descendant::span
Cú pháp này cho phép lấy ra tất cả các thẻ span trong mã nguồn là con cháu của một thẻ div có class là ‘mobile’.

** Cách dùng của Following-sibling, Preceding-sibling cũng giống với Descendant, khi sử dụng
1 trong 3 cái này thì đều cho kết quả xpath trả về giống nhau.
1.4 Ancestor
Cú pháp: //div[@class='mobile']//ancestor::div
Cú pháp này cho phép lấy ra tất cả các thẻ div trong mã nguồn là cha mẹ, tổ tiên của một thẻ div
có class là ‘mobile’.

1.5 Parent
Cú pháp: //div[@class='mobile']//parent::span
Cú pháp này cho phép lấy ra tất cả các thẻ span là thẻ cha trong thẻ div có class là ‘mobile’.

1.6 Child
Cú pháp: //div[@class='mobile']//child::span
Cú pháp này cho phép lấy ra tất cả các thẻ span là thẻ con trong thẻ div có class là ‘mobile’.

2 Tham khảo thêm bảng đầy đủ của XPath Axes:
|
AxisName |
Định nghĩa |
|
ancestor |
Chọn tất cả tổ tiên (cha mẹ, ông bà, v.v.) của phần tử chỉ định |
|
Ancestor-to-self |
Chọn tất cả tổ tiên (cha mẹ, ông bà, v.v.) của phần tử chỉ định và chính nó |
|
attribute |
Chọn tất cả các thuộc tính của phần tử chỉ định |
|
child |
Chọn phần tử con của phần tử chỉ định |
|
descendant |
Chọn tất cả các phần tử con, cháu của phần tử chỉ định |
|
descendant-or-self |
Chọn tất cả các phần tử con, cháu của phần tử chỉ định và chính nó |
|
following |
Chọn tất cả các phần tử nằm sau phần tử chỉ định |
|
following-sibling |
Chọn tất cả anh chị em sau phần tử chỉ định |
|
namespace |
Chọn tất cả namespace của phần tử chỉ định |
|
parent |
Chọn tất cả phần tử cha của phần tử chỉ định |
|
preceding |
Chọn tất cả các phần tử nằm trước phần tử chỉ định |
|
preceding-sibling |
Chọn tất cả anh chị em trước phần tử chỉ định |
|
self |
Chọn phần tử chỉ định |