10. juni 2005 - 14:06Der er
15 kommentarer og 1 løsning
Opret variabel og tæl antal gange en template bruges
Er lidt rusten i XML/XSL, så måske formulerer jeg mig lift forkert. Håber I forstår: Har en XML-fil med rigtig mange data i Her en XSL-fil der har en template, der "looper" over alle de data i XML-filen der matcher og skriver dataene fra XML'en ud i en tabel...
Så er det nogenlunde forklaret...
I princippet som vist:
<xsl:template name="VisData"> data nummer nummer ????: Værdi <xsl:value-of select="bla bla"/> </xsl:template>
Jeg vil blot gerne have en TÆLLER der hvor der står ???? - altså bare en variabel, der sættes op med en hver gang templaten udskrives, og får vist værdien
Håber I fatter hvad jeg mener - det er vist meget simpelt, men er ikek så god til at forklare...
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Har en følelse av at du kanskje skal opprette en variabel som inneholder en liste over alle noder som matcher, er det for-each på variablen, og position() vil virke som en slags teller.
Kan man ikke oprette en helt ny variabel, og tælle op på den, ligesom i alm. programmering?
Altså
<xsl:template name="VisData"> data nummer <værdi af min variabel "Tæller"> <"Tæller" = "Tæller" + 1> Værdi <xsl:value-of select="bla bla"/> </xsl:template>
Nei. Den nye verdien vil tilhøre en ny variabel med samme navn, men annet scope. Hvilket kan være genialt, men det er ikke lett å forstå. (Denne mekanismen gir god performance i liste-baserte språk som ML, men det er litt drøyt å lære seg ML, bare for å forstå XSLT bedre.)
I alle fall, den telleren du inkrementerte, vil være udefinert så snart du er ute av templaten.
Nej, XSL "programmeringsproget" har faktisk slet ikke variable i den traditionelle forstand fra rigtige programmeringssprog. Man har noget som kaldes "variable", men det er i virkeligheden en dims som er konstant når den først har fået en værdi.
Dit bedste bud er ar bruge position() som nævnt i 11/06-2005 22:59:40.
XML-filen fylder flere 1000 linier og det er svært at pille en repræcentativ bid ud.
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.