RE: [xsl] Generate a List

Subject: RE: [xsl] Generate a List
From: "Scott Trenda" <Scott.Trenda@xxxxxxxx>
Date: Tue, 6 Nov 2007 18:05:08 -0600
I'm guessing that you want something like this:

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>

  <xsl:output method="html"/>

  <xsl:template match="head">
    <h1>
      <xsl:apply-templates/>
    </h1>
  </xsl:template>

  <xsl:template match="list">
    <ul>
      <xsl:apply-templates/>
    </ul>
  </xsl:template>

  <xsl:template match="item">
    <li>
      <xsl:apply-templates/>
    </li>
  </xsl:template>

</xsl:stylesheet>


<xsl:value-of select="child::item"/> in your "list" template will only
give you the text values of those child nodes. You were missing the HTML
structure. Also, you can omit the <xsl:value-of/> here; the built-in
template for text nodes is to select the value of the node. Just
<xsl:apply-templates/> inside an HTML element in your template.


~ Scott


-----Original Message-----
From: Alice Ju-Hsuan Wei [mailto:ajwei@xxxxxxxxxxx]
Sent: Tuesday, November 06, 2007 5:57 PM
To: xsl-list
Subject: [xsl] Generate a List

Hi,

  I am trying to use the XSLT to generate something simple like a list
and output it to HTML with <ul> and <li> tags.

This is my XSLT:

  <xsl:template match="head">
        <p>
           <xsl:apply-templates/>
        </p>
    </xsl:template>

<xsl:template match="list">
<xsl:value-of select="child::item"/>
</xsl:template>

My XML:

<head>Things to do</head>
<list>
<item>Wash the dog</item>
<item>Take out the trash</item>
<item>Check out books on XSLT</item>
<item>Go to the bank</item>
<item>Pay bills</item>
</list>

Output:

<p class="">Things to do</p>

  Wash the dog Take out the trash Check out books on XSLT  Go to the
bank Pay bills
      <br>

Can anyone please tell me what is wrong with my code?

Thanks to those who can help.

Alice

Current Thread