[XPATH] Selectie geeft te veel elementen terug.

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • donderklik
  • Registratie: Januari 2004
  • Laatst online: 07-09-2023

donderklik

northing.nl

Topicstarter
Van een selectie waarmee meerdere elementen worden geselecteerd, wil ik maar 1 element hebben. Welk element is onbelangrijk. Ik weet niet waar het element zich in de structuur bevind.
XML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?xml version="1.0" ?>
<blok>
  <groep code='1'>Groep1/Level1
    <groep code='2'>Groep2/Level2
      <groep code='7'>Groep7/Level3</groep>
      <groep code='8'>Groep8/Level3</groep>
      <groep code='9'>Groep9/Level3</groep>
    </groep>
    <groep code='3'>Groep3/Level2</groep>
  </groep>
  <groep code='2'>Groep2/Level1
    <groep code='5'>Groep5/Level2</groep>
    <groep code='6'>Groep6/Level2
      <groep code='7'>Groep7/Level3</groep>
    </groep>
    <groep code='8'>Groep8/Level2</groep>
    <groep code='10'>Groep10/Level2</groep>
  </groep>
  <groep code='4'>Groep4/Level1</groep>
</blok>


code:
1
 //groep[@code='2']


geeft terug:
- Groep2/Level1
- Groep2/Level2

maar ik wil maar 1 element terug krijgen:
- Groep2/Level1 (of Groep2/Level2, dat maakt niet uit)

De volgende variaties werken niet, want dan zou code='8' niet te vinden zijn.
code:
1
 //groep[@code='2' and last()]

code:
1
 //groep[@code='2' and position() = 1]

code:
1
 //groep[@code='2'][0]


Volgens mij heb ik alle variaties geprobeerd, maar ik hoop dat iemand een oplossing heeft. _/-\o_

offtopic:
Sorry voor de belachelijke titel. Ik kan er geen duidelijker omschrijving vinden 8)7. Iemand die een betere titel weet _/-\o_.

Northing.nl


Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
Positie 0 bestaat niet, maar dan nog is dat de positie van een element binnen zijn parent. Wat je wil is:
code:
1
(//groep[@code='2'])[1]

of, maar met ander resultaat:
code:
1
string(//groep[@code='2'])

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


Acties:
  • 0 Henk 'm!

  • donderklik
  • Registratie: Januari 2004
  • Laatst online: 07-09-2023

donderklik

northing.nl

Topicstarter
Helemaal gelijk, 1 moet het zijn.
code:
1
//groep[@code='2'][1]


Dus als ik het goed begrijp zorgen de haken, ( ), ervoor dat de index op de output van de selectie komt te liggen. Zonder de haken is het een onderdeel van de selectie.

Bedankt! :D

Northing.nl