25. november 2008 - 17:05Der er
12 kommentarer og 1 løsning
XQuery til at finde ikke-eksisterende navne
Hej. Jeg har i en XML-fil en række faciliteter som er defineret blandt andet med et unikt navn. Derudover er der nogle rapporter som refererer til disse faciliteter vha. selvsamme navn. Det er vigtigt at der eksisterer en facilitet med det navn som man angiver i rapporten, så det jeg skal er at lave en XQuery der identificerer de steder hvor man har oprettet en rapport der benytter et navn som IKKE er oprettet under en facilitet. Jeg har prøvet mig lidt frem, men er jævnt blank når det kommer til XQueries. Håber der er nogen der kan hjælpe. Jeg har skitseret faciliteter og rapporter herunder. Ønsket er en liste af rapporter der indeholder ikke-eksisterende navne.
Ok, jeg har prøvet med !=, men den liste jeg får retur indeholder samtlige rapporter, ikke blot dem som refererer til et ikke-eksisterende navn (i faciliteterne). Jeg formoder at "//Facilitet/Navn/text()" giver samtlige noder der eksisterer af den slags, og at "FacilitetNavn/text()" holdes op mod hvert af disse elementer for at se om den eksisterer.
Hvordan kan jeg justere den så den kun returnerer de rapporter der refererer ikke-eksisterende navne fremfor samtlige rapporter?
Jeg ligger lige <faciliteter> og <rapporter> sammen med en node der hedder xml for at kunne bearbejde, jeg bruger msxml:node-set() til at lave min variable streng om til et xml nodeset..
Du kan godt have 2 xml kilder, brug msxsl:document.
Arg hvor er det irriterende jeg ikke kan redigere tidligere indlæg :@ En kort bemærkning: Jeg får data ind (dvs. filen med rapporter, faciliteter osv.) i en variabel der hedder $source_url. Har desværre ingen mulighed for at ændre i selve source-filen hvor Facilitet og Rapport ligger. Alle søgninger osv. skal foregå i min XQuery.
Jokke, så kan du bare sende et svar. Jeg brugte en lille del af dit eksempel og fik løst problemet. Det var præcist det med at bruge not i stedet for != der gjorde forskellen.
Det er ok, jeg fik løst problemet med din hjælp - det er de fulde points værd.
Tak
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.