Bạn có thể sử dụng position()
để bỏ qua phần "đầu tiên", nhưng tùy thuộc vào yếu tố nào yo u quan tâm và ngữ cảnh là gì, bạn có thể cần một biến thể nhỏ trên XPATH của bạn.
Ví dụ, nếu bạn muốn giải quyết tất cả các li
yếu tố và nhận được tất cả ngoại trừ lần đầu tiên, bạn có thể sử dụng:
//li[position()>1]
và nó sẽ làm việc như mong đợi, trở về tất cả các li
yếu tố ngoại trừ đầu tiên.
Tuy nhiên, nếu bạn muốn giải quyết tất cả các thành phần a
bạn cần sửa đổi XPATH một chút. Trong ngữ cảnh của biểu thức //a[position()>1]
, mỗi một trong các thành phần a
sẽ có một số position()
của 1 và last()
sẽ được đánh giá là đúng. Vì vậy, nó sẽ luôn trả về mỗi a
và sẽ không bỏ qua lần đầu tiên.
Bạn cần phải quấn biểu thức chọn a
trong ngoặc đơn để nhóm chúng trong tập hợp nút, sau đó áp dụng bộ lọc biến vị ngữ trên vị trí.
(//a)[position()>1]
Ngoài ra, bạn cũng có thể sử dụng một biểu thức như thế này:
//a[preceding::a]
Điều đó sẽ tìm thấy tất cả a
yếu tố ngoại trừ thứ nhất (vì không có a
trước cái đầu tiên).
Nguồn
2010-04-14 01:31:59
Bạn có thể xác định "phần tử đầu tiên" là gì không? Từ ví dụ XML phần tử đầu tiên là 'ul', hoặc nếu bạn có ý nghĩa từ' ul' phần tử đầu tiên là 'li', hay bạn muốn chọn tất cả các phần tử' a' sau đó bỏ qua phần tử đầu tiên? –
Tôi muốn bỏ qua li đầu tiên. – priyank