Ich habe in dieser Frage sah: Select first instance only with XPath?erste Ergebnis in XPath
Aber wenn ich einen Knoten-Set haben wie folgt aus:
<container value="">
<data id="1"></data>
<data id="2">test</data>
<container>
<data id="1">test</data>
<data id="3">test</data>
</container>
</container>
Jetzt ist mein Szenario, dass dieser Knoten-Set ist tief in einem Dokument, und ich habe einen Zeiger auf den inneren Container. Also muss ich meinen XPath mit "/ container/container" voranstellen (der Pfad ist eigentlich länger, aber für dieses Beispiel sollte das genügen).
EDIT: Was ich will ist ein "Daten" -Knoten mit einer ID von 1, die von der niedrigsten Knoten zuerst oder der nächste Vorfahren kommen sollte. Also, wenn ich es nicht auf dem "aktuellen" (/ container/container) finde, sollte ich mir die Vorfahren anschauen und den nächsten bekommen (oder am Ende nichts finden). Ich habe dies versucht:
/Behälter/Container/Vorfahr-or-self :: Behälter/data [@ id = "1"]
, die ein Ergebnis mit zwei Knoten gesetzt zurück bringt. Ich dachte, ich könnte last() benutzen, um den tiefsten zu bekommen, also habe ich das am Ende geheftet, aber ohne Erfolg.
die Beschreibung mit mehr Klarheit tun könnte. Sie möchten den Datenknoten? Der Datenknoten muss eine ID von 1 haben. Bilden Sie den ursprünglichen Container, wenn der Datenknoten nicht die ID 1 hat. Sie möchten das Dokument in einen übergeordneten Container verschieben, um zu sehen, ob es einen Datenknoten mit der ID 1 hat. Wenn nicht, fahren Sie bis zum Datenknoten mit einer ID fort von 1 wird gefunden. Beschreibt es das? – AnthonyWJones
Ich habe versucht zu beschreiben, was ich gesucht habe, obwohl einige es erraten haben. Es tut uns leid! –