24. april 2006 - 16:33Der 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'
Teknologi, AI og forretning er i centrum på Computerworlds Cloud og AI Festival i København d. 18. og 19. september. Se hele programmet for den store konference om strategisk brug af Cloud og AI på: www.cloud-festival.dk
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:
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).
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.
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']
Synes godt om
Ny brugerNybegynder
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.