Avatar billede jma001 Nybegynder
10. januar 2003 - 10:39 Der er 4 kommentarer

Tæller i XSLT

Mit Problem er følgende:

Jeg skal lave en formatering af et XML dokument til en txt file til en printer.

Her i ønsker jeg at have en tæller (noOfElements). Denne skal tælles op for hvert element i en "xsl:for-each" da hvert af disse elementer skal placeres på hver sin linie udfra formlen "$ofset+$space*$noOfElements".

Er der nogle der har et forslag til hvorledes dette kan løses.

Her er et eksempel på den ønskede funktionalitet:

<?xml version='1.0'?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:param name="ofset" expr="900"/>
<xsl:param name="space" expr="30"/>
<xsl:param name="noOfElements" expr="1"/>

<xsl:template match="/">
<xsl:for-each select="/GroupByRow">
^A0,23,24^FO15,<xsl:value-of select="number($ofset+$space*$noOfElements)"/>^CI4^FD<xsl:value-of select="../OrdersView/OrdersViewRow/StyleName"/></xsl:if>^FS
<%--Her skal indsættes funktionaliteten $noOfElements = $noOfElements+1--%>
</xsl:for-each>

</xsl:stylesheet>
Avatar billede jma001 Nybegynder
10. januar 2003 - 11:31 #1
Det skal nævnes at jeg ikke kan benytte mig af
<xsl:value-of select="position()" /> i <xsl:for-each select="/GroupByRow">
da dette er et meget simplificeret eksempel.
Avatar billede atoft Nybegynder
29. januar 2003 - 20:04 #2
Da en variabel kun kan erklæres engang i en template, bliver du nødt til at køre kalde dig selv rekursivt. Hvorfor er det du ikke kan bruge position()?
Avatar billede tazly Nybegynder
08. april 2003 - 18:31 #3
Brug den indbyggede tæller position()


<xsl:for-each select="/GroupByRow">
^A0,23,24^FO15,<xsl:value-of select="number($ofset+$space*position())"/>^CI4^FD<xsl:value-of select="../OrdersView/OrdersViewRow/StyleName"/></xsl:if>^FS
</xsl:for-each>
Avatar billede tazly Nybegynder
08. april 2003 - 18:32 #4
Lidt pænere præsenteret


<xsl:for-each select="/GroupByRow">
    <xsl:value-of select="number($ofset+$space*position())"/>
    <xsl:value-of select="../OrdersView/OrdersViewRow/StyleName"/>
</xsl:for-each>
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