Avatar billede getalife Nybegynder
19. oktober 2000 - 14:48 Der er 4 kommentarer og
1 løsning

Mere end een?

Hvordan checker jeg om der findes mere end et element med samme navn.
Hvordan finder jeg ud af om der er mere end en <Pricegroup>?

<PricegroupBlocks>
    <Pricegroup>
        <Title>A</Title>
        <Price>60</Price>
    </Pricegroup>
    <Pricegroup>
        <Title>B</Title>
        <Price>70</Price>
    </Pricegroup>
</PricegroupBlocks>

Grunden er at jeg vil gøre en ting hvis der er een forekomst... og en anden hvis der er flere end een.

/Getalife
Avatar billede janegil Nybegynder
20. oktober 2000 - 13:11 #1
Fra http://www.w3.org/TR/xslt#patterns
para[last()=1] matches any para element that is the only para child element of its parent

Så skulle det vel bli
Pricegroup[last()=1]
for å matche enebarne, så skulle
Pricegroup
som en mindre spesifikk pattern, matche søsken, og bare søsken.
Avatar billede janegil Nybegynder
20. oktober 2000 - 13:17 #2
Pricegroup[last()>1]
skulle nok også matche alle søsken.
Avatar billede janegil Nybegynder
20. oktober 2000 - 13:28 #3
Du har rimeligvis bruk for å vite om det er flere Pricegroup\'er, allerede når du har en match på en PricegroupBlocks?

Du kan sno deg utenom med å teste på
position()=1
og position()= last()
men det er stygt. Det som er vakker XSL/T, er å håndtere PricegroupBlocks som en enhet, ikke hacke start- og slutt-kode på henholdsvis 1. og siste Pricegroup.

Nå er det vill gjetning fra min side:
PricegroupBlocks[Pricegroup[last()=1]]
og
PricegroupBlocks[Pricegroup[last()>1]]
?
Avatar billede getalife Nybegynder
23. oktober 2000 - 11:53 #4
Heh.. fandt ud af det.. ret nemt faktisk ;o)

<xsl:when test=\"SelectSeatBlock/PricegroupBlocks/Pricegroup[1]\">

Janegil.. du får points for forsøget ;o)
Det du skriver virker sikkert også, men på en nyere parser end den vi har bygget vores projekt på :o(

/Getalife
Avatar billede janegil Nybegynder
23. oktober 2000 - 12:09 #5
Takk for det!

Din
\"Pricegroup[1]\"
er jo penere enn min
\"Pricegroup[last()=1]\"

Hittil har jeg oppfattet if og when og sånt som brudd på god stil i XSL. jeg ville heller ha to templates.

Men her ser jeg jo at jeg ville fått fått to PricegroupBlocks-templates der jeg vet at match på den ene utelukker match på den andre. Så er det nok penere med én template, og xsl:choose inni.
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