|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Why I want to change the value of a variable.
David Carlisle wrote:
>
> > Is it possible in xsl to change the value of a variable?
>
> No.
So why is it called 'variable'?
> If you said what you _really_ wanted to do (ie what effect you wanted to
> achieve) then no doubt someone could help.
OK.
I have a list of people in a XML format:
<LIST_PEOPLE>
<PEOPLE>
<FIRST_NAME>Emmanuel</FIRST_NAME>
<NAME>Leguy</NAME>
</PEOPLE>
<PEOPLE>
<FIRST_NAME>Sam</FIRST_NAME>
<NAME>Kememer</NAME>
</PEOPLE>
<PEOPLE>
<FIRST_NAME>Gilles</FIRST_NAME>
<NAME>Presley</NAME>
</PEOPLE>
<PEOPLE>
<FIRST_NAME>Marie-Pierre</FIRST_NAME>
<NAME>Smith</NAME>
</PEOPLE>
<PEOPLE>
<FIRST_NAME>Eve</FIRST_NAME>
<NAME>Ramone</NAME>
</PEOPLE>
<PEOPLE>
<FIRST_NAME>Florence</FIRST_NAME>
<NAME>Lerouge</NAME>
</PEOPLE>
<PEOPLE>
<FIRST_NAME>Marc</FIRST_NAME>
<NAME>Duchmol</NAME>
</PEOPLE>
<PEOPLE>
<FIRST_NAME>Yves</FIRST_NAME>
<NAME>Durant</NAME>
</PEOPLE>
<PEOPLE>
<FIRST_NAME>Maria</FIRST_NAME>
<NAME>Dupuis</NAME>
</PEOPLE>
<PEOPLE>
<FIRST_NAME>Laurent</FIRST_NAME>
<NAME>Leclercq</NAME>
</PEOPLE>
<PEOPLE>
<FIRST_NAME>Chris</FIRST_NAME>
<NAME>Dupont</NAME>
</PEOPLE>
<PEOPLE>
<FIRST_NAME>Alan</FIRST_NAME>
<NAME>Stivell</NAME>
</PEOPLE>
<PEOPLE>
<FIRST_NAME>Gweltaz</FIRST_NAME>
<NAME>Ar Fur</NAME>
</PEOPLE>
</LIST_PEOPLE>
and I would like to transform it in html:
<HTML>
<HEAD><TITLE>People list</TITLE></HEAD>
<BODY>
<CENTER>- A -</CENTER><BR>
Gweltaz Ar Fur<BR>
<CENTER>- B -</CENTER><BR>nobody<BR>
<CENTER>- C -</CENTER><BR>nobody<BR>
<CENTER>- D -</CENTER><BR>
Marc Duchmol<BR>
Chris Dupont<BR>
Maria Dupuis<BR>
Yves Durant<BR>
<CENTER>- E -</CENTER><BR>nobody<BR>
<CENTER>- F -</CENTER><BR>nobody<BR>
<CENTER>- G -</CENTER><BR>nobody<BR>
<CENTER>- H -</CENTER><BR>nobody<BR>
<CENTER>- I -</CENTER><BR>nobody<BR>
<CENTER>- J -</CENTER><BR>nobody<BR>
<CENTER>- K -</CENTER><BR>
Sam Kememer<BR>
<CENTER>- L -</CENTER><BR>
Laurent Leclercq<BR>
Emmanuel Leguy<BR>
Florence Lerouge<BR>
<CENTER>- M -</CENTER><BR>nobody<BR>
<CENTER>- N -</CENTER><BR>nobody<BR>
<CENTER>- O -</CENTER><BR>nobody<BR>
<CENTER>- P -</CENTER><BR>
Gilles Presley<BR>
<CENTER>- Q -</CENTER><BR>nobody<BR>
<CENTER>- R -</CENTER><BR>
Eve Ramone<BR>
<CENTER>- S -</CENTER><BR>
Marie-Pierre Smith<BR>
Alan Stivell<BR>
<CENTER>- T -</CENTER><BR>nobody<BR>
<CENTER>- U -</CENTER><BR>nobody<BR>
<CENTER>- V -</CENTER><BR>nobody<BR>
<CENTER>- W -</CENTER><BR>nobody<BR>
<CENTER>- X -</CENTER><BR>nobody<BR>
<CENTER>- Y -</CENTER><BR>nobody<BR>
<CENTER>- Z -</CENTER><BR>nobody<BR>
</BODY>
</HTML>
To do this i use this algorithm:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"
indent-result="yes">
<xsl:template match="/">
<HTML>
<HEAD><TITLE>People list</TITLE></HEAD>
<BODY>
<!-- declaration of curentChar -->
<xsl:for-each select="LIST_PEOPLE/PEOPLE">
<xsl:sort select="NAME"/>
<xsl:sort select="FIRST_NAME"/>
<xsl:variable name="firsChar">
<xsl:value-of select="substring(NAME,1,1)"/>
</xsl:variable>
<xsl:if test="not(string(curentChar)=string(firstChar))">
<CENTER>- <xsl:value-of select="$firstChar"/> -</CENTER><BR/>
<!-- put the firstChar value into curentChar -->
</xsl:if>
<xsl:value-of select="FIRST_NAME"/>
<xsl:text> </xsl:text>
<xsl:value-of select="NAME"/>
<BR/>
</xsl:for-each>
</BODY>
</HTML>
</xsl:template>
</xsl:stylesheet>
Manu.
--
Laboratoire d'Informatique Fondamentale de Lille (LIFL)
Universite des Sciences et Technologies de Lille
Batiment M3 Cite Scientifique
59655 Villeneuve d'Ascq Cedex
FRANCE
tel: 03 20 33 63 38
fax: 03 20 43 65 66
mailto:Emmanuel.Leguy@xxxxxxx
http://www.lifl.fr
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








