cập nhật để phản ánh một giải pháp dự định của OP.
câu trả lời See @ David
Đối với một xml mẫu dưới đây,
<root>
<foo id="0">
<bar attr="val"/>
<foo id="1">
<bar attr="xxx"/>
</foo>
<foo id="2">
<bar attr="val">
<one>1</one>
<two>
<three>3</three>
</two>
</bar>
</foo>
</foo>
xpath hợp lệ trên trục ngược với <ba> là nút bối cảnh, một hợp lệ giải pháp là
./ancestor::foo[bar[@attr='val']][position() = 1]
"./" là tùy chọn. vị trí() = 1 không phải là tùy chọn nếu không tổ tiên foo
thỏa mãn các biến vị ngữ cũng sẽ được trả lại.
Cũ câu trả lời: bỏ qua
Đây là một câu hỏi cũ. nhưng bất cứ ai quan tâm, những điều sau đây sẽ giúp bạn có được câu hỏi ban đầu.
Xếp trục
//bar[@attr='val']/ancestor::*[position()=1]
Forward trục
//*[child::bar[@attr='val']]
Bạn nhận được gì? –
Không có gì. Nó không khớp với phần tử tôi mô tả. Biểu thức đó có hoạt động không? –
Vui lòng cung cấp tài liệu XML (tối thiểu) mà tài liệu này "không hoạt động". Chúng tôi chỉ biết rằng bạn đang "đặt tay vào túi và không tìm thấy những gì bạn muốn ở đó" nhưng chúng tôi không biết "những gì có trong túi" :) –