This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Beginner XSL question


Arturo C wrote:
> Hi and sorry my english... how can i count the number of elements, for 
> instance, student in the following case:
> 
> <school>
>    <student>
>       ....
>    </student>
>    <student>
>       ....
>    </student>
>    <student>
>       ....
>    </student>
> </school>
> 
> and show the result (3) in an HTML page using XSL?

To get you started, and to demonstrate several principles, here is an example.
It assumes each <student> contains a <name>. You should get a good book on
XSLT. Try these:

  http://www.amazon.com/exec/obidos/ASIN/1861005946
  http://www.amazon.com/exec/obidos/ASIN/1861005067

   - Mike
____________________________________________________________________________
  mike j. brown                   |  xml/xslt: http://skew.org/xml/
  denver/boulder, colorado, usa   |  resume: http://skew.org/~mike/resume/


<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>

  <xsl:output method="html" indent="yes"/>

  <xsl:template match="/">
    <html>
      <head>
        <title>test</title>
      </head>
      <body>
        <h1>test</h1>
        <xsl:apply-templates/>
      </body>
    </html>
  </xsl:template>

  <xsl:template match="school">
    <p>There are <xsl:value-of select="count(student)"/> students.</p>
    <ul>
      <xsl:apply-templates select="student"/>
    </ul>
  </xsl:template>

  <xsl:template match="student">
    <li>
      <xsl:value-of select="concat('Student #',position(),' of ',last(),': ',name)"/>
    </li>
  </xsl:template>

</xsl:stylesheet>

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]