[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

RE: [xsl] problem with xsl:copy-of and counting lines


Subject: RE: [xsl] problem with xsl:copy-of and counting lines
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Wed, 20 Jun 2007 10:27:55 +0100

Perhaps I've misunderstood the question, but can't you just change

string-length(/) - string-length(translate(/,'&#xA;',''))

to

string-length(.) - string-length(translate(.,'&#xA;',''))

?
Michael Kay
http://www.saxonica.com/

> -----Original Message-----
> From: Andreas Peter [mailto:info@xxxxxxxxxx]
> Sent: 20 June 2007 09:47
> To: XSL-LIST
> Subject: [xsl] problem with xsl:copy-of and counting lines
>
>
> Hello XSL-List-Users,
>
> I still have a probelm with counting lines in a set of nodes.
> I want to count the lines in a specific tree structure. The
> xml structure looks like the following:
>
> <block>
>   <title>Seminare</title>
>   <h1>Mit gesunden Fuessen laeuft es besser</h1>
>   <p>text...text...</p>
>   <list>
>    <li>Was sagen die Blutzucker-Messwerte aus?</li>
>    <li>Ist die Krankheit erblich?</li>
>   </list>
>
>   <kursinfo>
>    <tr>
>    <referent>
>    <refname>Seminar mit Hans Wurscht</refname></referent>
>    </tr>
>    <tr>
>    <tag>Do</tag>
>    <datum>12.06.07</datum>
>    <uhrzeit>15:00 - 16:30 Uhr</uhrzeit>
>    <kursnr>Kurs-Nr.:</kursnr>
>    <nr>10</nr>
>    <beitrag></beitrag>
>    </tr>
>
>    <tr>
>    <tag>Fr</tag>
>    <datum>13.06.07</datum>
>    <uhrzeit>14:00 - 15:30 Uhr</uhrzeit>
>    <kursnr>Kurs-Nr.:</kursnr>
>    <nr>90</nr>
>    <beitrag></beitrag>
>    </tr>
>
>    <tr><tag>Sa</tag>
>    <datum>13.06.07</datum>
>    <uhrzeit>14:00 - 15:30 Uhr</uhrzeit>
>    <kursnr>Kurs-Nr.: </kursnr>
>    <nr>68</nr>
>    <beitrag></beitrag>
>    </tr>
>
>    <tr>
>    <tag>So</tag>
>    <datum>13.06.07</datum>
>    <uhrzeit>14:00 - 15:30 Uhr</uhrzeit>
>    <kursnr>Kurs-Nr.: </kursnr>
>    <nr>50</nr>
>    <beitrag>10 Euro</beitrag>
>    </tr>
>
>    <tr>
>    <zusatz>
>    <zusatztext>blabla hier kommt noch zusdtzlicher Text hinein, wie
> z.B.     Handt|cher mitbringen usw.</zusatztext>
>    </zusatz>
>    </tr>
> </kursinfo>
> </block>
>
> My aim is to count every line between the element
> <block></block> which can occur several times. The returned
> value should be stored in a variable which I can use later.
>
> My xsl so far:
>
> <xsl:template match="block" mode="variable"> <xsl:copy-of
> select="."/> <xsl:variable name="countlines"
> select="string-length(/) -
> string-length(translate(/,'&#xA;',''))" /> <xsl:value-of
> select="."/> </xsl:template>
>
> Counting the lines for the whole document is no problem.
> Hope someone out there can help.
>
> Thanks so much.
> Andreas


Current Thread
Keywords