tôi đã xem xét câu hỏi này: Select first instance only with XPath?Chọn kết quả đầu tiên trong XPath
Nhưng nếu tôi có một nút thiết lập như thế này:
<container value="">
<data id="1"></data>
<data id="2">test</data>
<container>
<data id="1">test</data>
<data id="3">test</data>
</container>
</container>
Bây giờ kịch bản của tôi được rằng đây node-set là sâu bên trong một tài liệu và tôi có một con trỏ đến vùng chứa bên trong. Vì vậy, tôi phải tiền tố XPath của tôi với "/ container/container" (đường dẫn thực sự là dài hơn, nhưng đối với ví dụ này nên làm).
EDIT: Điều tôi muốn là nút "dữ liệu" có id là 1, phải đến từ nút thấp nhất trước tiên hoặc tổ tiên gần nhất. Vì vậy, nếu tôi không thể tìm thấy nó trên "hiện tại" (/ container/container), tôi nên nhìn vào tổ tiên và có được một trong những gần nhất (hoặc cuối cùng, không tìm thấy bất cứ điều gì). Tôi đã cố gắng này:
/container/container/tổ tiên-or-self :: container/dữ liệu [@ id = "1"]
nào mang lại kết quả thiết lập với hai nút. Tôi nghĩ rằng tôi có thể sử dụng last() để có được một sâu nhất, vì vậy tôi tacked rằng vào cuối, nhưng vô ích.
Các đặc điểm kỹ thuật có thể làm một cách rõ ràng hơn. Bạn muốn nút dữ liệu? Nút dữ liệu phải có id là 1? Hình thành vùng chứa ban đầu nếu nút dữ liệu không có id là 1 bạn muốn di chuyển tài liệu lên vùng chứa chính để xem liệu có nút dữ liệu có id là 1 hay không, nếu không tiếp tục cho đến khi nút dữ liệu có id của 1 được tìm thấy. Điều đó mô tả nó? – AnthonyWJones
Tôi đã cố gắng để mô tả những gì tôi đang tìm kiếm một chút rõ ràng hơn, mặc dù một số đoán nó. Lấy làm tiếc! –