Avatar billede farouche Nybegynder
19. februar 2007 - 18:19 Der er 3 kommentarer og
1 løsning

Tricky XQuery

Jeg har noget XML der simplificeret har denne struktur :

<Catalog>
  <Levels>
    <Level Id="1000">
      <Name>Test1</Name>
      <Levels>
        <Level Id="1100">
          <Name>Test2</Name>       
        </Level>
        <Level Id="1200">
          <Name>Test3</Name>
          <Levels>
            <Level Id="1210">
              <Name>Test4</Name>
            </Level>
          </Levels>
        </Level>
      </Levels>
    </Level>
  </Levels>
</Catalog>

Alle Id er unikke i hele dokumentet.

Har brug for en forespørgsel der gir mig en <Level> node ud fra en Id attribut værdi.

Skal selvføgelig søge i alle subniveauer at <Levels> som er det der gir mig lidt bøvl, kan kun få den til at finde det på øverste niveau.

På forhånd tak
Avatar billede Slettet bruger
19. februar 2007 - 21:07 #1
Flg. XPath query giver dig det du ønsker - måske kan du selv oversætte den til XQuery (?):

/Catalog/Levels//Level[@Id = 1210]

/CS
Avatar billede farouche Nybegynder
19. februar 2007 - 21:11 #2
Tak for svaret, det er lige præcist det Query jeg har brugt, har så måske lige blandet XPath og XQuesry sammen.

Synes bare ikke det virker efter hensigten og jeg var nået til den konklusion at den kun søger efter Level direkte under /Catalog/Levels ??

/Catalig/Levels ??
Avatar billede farouche Nybegynder
19. februar 2007 - 21:20 #3
Sorry, det er mig der er blind :-/

Havde skrevet /Catalog/Levels/Level[@Id = 1210]


Lille forskel med store konsekvenser ;)
Avatar billede Slettet bruger
19. februar 2007 - 22:00 #4
Jeps - der er grande forskel på om man buger een eller to slashes :-)

"//" koster en del i processortid, derfor er det rigtig smart at fortælle den så meget som muligt FØR (i dit eksempel "/Catalog/Levels//...") så der ikke bruges unødige cycles.

/CS
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