|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Re: Incrementing a Global variable
I could not try ur solution
This is the error/msgbox I got
---------------------------
XML Spy
---------------------------
XSL transformation failed due to following error:
Namespace 'http://exslt.org/common' does not contain
any functions.
---------------------------
OK
---------------------------
--- Dimitre Novatchev <dnovatchev@xxxxxxxxx> wrote:
> > Problem: print a list of students, grouping the
> students by their
> > language and printing a blank line between each
> group. Number the blank
> > lines in addition to the lines with students'
> names.
> >
> > So calling position() to get the number is
> insufficient, because
> > position() doesn't count the blank lines.
> >
> > Mukul was commenting that this problem would be
> easier to solve if XSLT
> > supported something like variables. For example:
>
> This is not a difficult problem and it doesn't
> deserve all this long thread.
>
> Here's a simple two-pass solution:
>
>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> xmlns:ext="http://exslt.org/common"
> >
> <xsl:output method="html" indent="yes"/>
>
> <xsl:key name="kStudent" match="student"
> use="@nl"/>
>
> <xsl:template match="/">
> <html>
> <table>
> <xsl:variable name="vrtfGrouped">
> <xsl:for-each
> select="/*/student[generate-id()
> =
> generate-id(key('kStudent',
> @nl
> )[1]
> )
> ]">
> <xsl:copy-of select="key('kStudent', @nl)"/>
>
> <xsl:if test="not(position() = last())">
> <blank/>
> </xsl:if>
>
> </xsl:for-each>
> </xsl:variable>
>
> <xsl:variable name="vGrouped"
> select="ext:node-set($vrtfGrouped)/*"/>
>
> <xsl:for-each select="$vGrouped">
> <tr>
> <td>
> <xsl:value-of select="position()"/>
> </td>
> <td>
> <xsl:value-of select="concat(@name, ' ')"/>
> </td>
> </tr>
> </xsl:for-each>
> </table>
> </html>
> </xsl:template>
> </xsl:stylesheet>
>
>
> When this transformation is applied e.g. on the
> following source.xml:
>
> <t>
> <student name="x" nl="English"/>
> <student name="y" nl="German"/>
> <student name="z" nl="English"/>
> <student name="t" nl="French"/>
> <student name="u" nl="English"/>
> </t>
>
> the wanted result is produced:
>
>
> <html>
> <table>
> <tr>
> <td>1</td>
> <td>x </td>
> </tr>
> <tr>
> <td>2</td>
> <td>z </td>
> </tr>
> <tr>
> <td>3</td>
> <td>u </td>
> </tr>
> <tr>
> <td>4</td>
> <td> </td>
> </tr>
> <tr>
> <td>5</td>
> <td>y </td>
> </tr>
> <tr>
> <td>6</td>
> <td> </td>
> </tr>
> <tr>
> <td>7</td>
> <td>t </td>
> </tr>
> </table>
> </html>
>
>
> So what is the problem?
>
>
> =====
> Cheers,
>
> Dimitre Novatchev.
> http://fxsl.sourceforge.net/ -- the home of FXSL
>
> __________________________________
> Do you Yahoo!?
> Yahoo! SiteBuilder - Free, easy-to-use web site
> design software
> http://sitebuilder.yahoo.com
>
> XSL-List info and archive:
> http://www.mulberrytech.com/xsl/xsl-list
>
__________________________________
Do you Yahoo!?
Yahoo! SiteBuilder - Free, easy-to-use web site design software
http://sitebuilder.yahoo.com
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








