Avatar billede ladyhawke Novice
24. april 2006 - 16:33 Der er 6 kommentarer og
1 løsning

xPath: Vælg attribut i node med bestemt attributværdi

Altså hvis jeg har en række xml noder med f.eks. 5 atributter i hver (sprog, antal, pris, varighed og størrelse) og jeg gerne vil fange værdien af attribut pris i de tilfælde hvor attribut sprog er lig "dansk", hvordan gør jeg så?

Jeg kan finde noden (eller hvis der er flere) som har attribut sprog = 'dansk'
//Nodenavn[@sprog='dansk']

men hvordan får jeg værdien af pris for de noder som har sprog = 'dansk'
Avatar billede Slettet bruger
24. april 2006 - 21:17 #1
Så gør du sådan:

  //Nodenavn[@sprog = 'dansk']/@pris

og du kan naturligvis også hente attributten antal for dem hvor prisen er 12.00:

  //Nodenavn[@sprog = 'dansk'][@pris = '12.00']/@antal

- og så videre og et cetera...

/CS
Avatar billede ladyhawke Novice
25. april 2006 - 08:44 #2
hmmm, jeg kan ikke helt få det til at virke, men hvis jeg husker rigtigt så angiver '/' næste niveau og derfor vil //Nodenavn[@sprog = 'dansk']/@pris
give pris attributten for noden UNDER den node som har sprog_'dansk? Den findes ikke i dette tilfælde og i hvert fald fejler min web service...

Hvis jeg blot kalder med //Nodenavn[@sprog = 'dansk'], så får jeg noden med dens 5 sttributter, men jeg ville gerne pille en bestemt attribut ud direkte i xpath, selvom man jo sagtens kan få fat i den hvis man har noden (i kode).
Avatar billede ladyhawke Novice
25. april 2006 - 09:12 #3
måske skylde problemet at jeg forsøger at gøre dette i kode, jeg forsker lige lidt mere i det
Avatar billede ladyhawke Novice
25. april 2006 - 09:22 #4
got it :) tak for hjælpen
Avatar billede Slettet bruger
25. april 2006 - 09:33 #5
Bare lige for at præcisere - du har ret i at "/" angiver "næste niveau", men i XML *er* det faktisk også næste niveau, hvad enten det er en attribut, et element, en kommentar eller tekst.

/CS
Avatar billede ladyhawke Novice
25. april 2006 - 09:59 #6
mange tak :)
Avatar billede ladyhawke Novice
25. april 2006 - 12:38 #7
Forresten kan jeg lige notere at notationen i C# for emere end 1 attribut er som følger:

//Nodenavn[@sprog = 'dansk' and @Pris='15.00']
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester