XPath: das n-te Element mit dem passenden Attribut
-
<root> <foo class="bar" value="uninteressant"/> <foo class="bar" value="DAS WILL ICH"/> <foo class="bar" value="uninteressant"/> </root>ich möchte mit xpath z.B. das zweite Element haben.
Alle Elemente mit class="bar" krieg ich mit
//foo[@class='bar']/Aber wie auf das zweite zugreifen?
//foo[@class='bar'][1]/funzt nicht.
???
-
Das zweite Element hat den Index 2:
//foo[@class = 'bar'][2]Allerdings solltest du besser /root/foo statt //foo schreiben - es sei denn du willst wirklich //foo.
-
ich will schon //foo. Aber
//foo[@class = 'bar'][2]funzt nicht. Der Index wird einfach nicht beachtet

-
http://msdn2.microsoft.com/en-us/library/ms256086.aspx
der Index ist schon richtig. Ich denke eher das die Kombination von "//" am Anfang und Index nicht gehen kann. "//" sagt: Gibt mir _alle_ foo-nodes im dokument, egal in welchen Subnodes.
Index bezieht sich aber auf das parent der Nodes. Bei "//" ist es aber ja eine Gesamtliste von vielen nodes die alle unterschiedliche Parents haben können.
der Vorschlag /root/foo zu benutzen müsste der richtige sein.
-
muss mich korrigieren.
Für den Fall mit //foo[@class = 'bar'][2] muss es richtig heissen
(//foo[@class = 'bar'])[2]
so umgeht man das problem mit den unterschiedlichen Parents.
-
ahh

Super. Allervielsten Dank
