XPath Ergebnisse einschränken

Es geht um folgenden XML-Ausschnitt:

Ich möchte die seller ermitteln, die bei ihren eigenen Auktionen geboten haben, die also sowohl als seller als auch als bidder einer Auktion auftreten.
Das wäre im oben stehenden Beispiel nur „p1“.

Diese Abfrage möchte ich mit XPath schreiben.
Mein Ansatz ist folgender:
/auction[@seller=./bid/@bidder]/@seller

Dieser liefert aber immer zu viele Ergebnisse, weil zunächst alle Auktionen ermittelt werden und dann auf Basis der ermittelten Auktionen die Bedingung für das Attribut ausgewertet wird.
Wo ist hier mein Denkfehler? Es muss doch möglich sein, dass das Kriterium nur __die eigenen Kindknoten__ einer Auktion berücksichtigt.

Ich bin für jede Hilfe dankbar.
Viele Grüße
Thomas

Sorry, ich bin schon zu lange aus dem Thema raus und kann dir leider nicht weiter helfen.

Hallo Thomas, die Lösung könnte so aussehen.

<?xml version="1.0" encoding="UTF-8"?>

MfG,
Rocco

Hi Thomas,
sorry, bin grad auf Geschäftsreise.Am besten nochmal nen anderen Fragen.
Viel Erfolg und Grüße,
Rolf

Ich möchte die seller ermitteln, die bei ihren eigenen
Auktionen geboten haben, die also sowohl als seller als auch
als bidder einer Auktion auftreten.
Das wäre im oben stehenden Beispiel nur „p1“.

Diese Abfrage möchte ich mit XPath schreiben.
Mein Ansatz ist folgender:
/auction[@seller=./bid/@bidder]/@seller

Dieser liefert aber immer zu viele Ergebnisse, weil zunächst
alle Auktionen ermittelt werden und dann auf Basis der
ermittelten Auktionen die Bedingung für das Attribut
ausgewertet wird.
Wo ist hier mein Denkfehler? Es muss doch möglich sein, dass
das Kriterium nur __die eigenen Kindknoten__ einer Auktion
berücksichtigt.

Ich bin für jede Hilfe dankbar.
Viele Grüße
Thomas

Hallo Thomas,
ich habe deinen Schnipsel gerade durch mein XPath-Modul geschoben - er funktioniert genau so wie du möchtest (habe ich ehrlich gesagt auch erwartet, da die Bedingung so i.O. zu sein scheint). Ich benutze Jdom, welchen XPath-Interpreter verwendest du? Einen Browser?

Schau mal, ob dieser XPath-Ausdruck deine Frage beantwortet:

**//auction[@seller=./bid/@bidder]/@id**

Gruß Markus

Half dir meine Antwort weiter?