xsl-list
[Top] [All Lists]

Re: [xsl] Grouping: unordered lists from xml to html

2008-10-23 08:16:16
J. S. Rawat schrieb:
At 02:48 PM 10/23/2008, Michael Ludwig wrote:
<xsl:stylesheet version="2.0"
Hi Ludwig version 2.0 solution is already in the list but I want this
solution within 1.0

Hi JSR,

use sibling recursion. The following could probably be improved, but it
works for your input.

Michael Ludwig

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

  <xsl:template match="summary">
    <html>
      <body>
        <xsl:apply-templates select="*[1]"/>
      </body>
    </html>
  </xsl:template>

  <xsl:template match="para[ @bullet = 0 ]">
    <p><xsl:value-of select="."/></p>
    <xsl:apply-templates select="following-sibling::*[1]"/>
  </xsl:template>

  <xsl:template match="para[ @bullet = 1 ]">
    <ul>
      <li><xsl:value-of select="."/></li>
      <xsl:apply-templates select="following-sibling::*[1]" mode="in-ul"/>
    </ul>
    <!-- jump to the next non-bullet item -->
<xsl:apply-templates select="following-sibling::*[not( @bullet = 1)][1]"/>
  </xsl:template>

  <xsl:template match="para[ @bullet = 1 ]" mode="in-ul"><!-- continue -->
    <li><xsl:value-of select="."/></li>
    <xsl:apply-templates select="following-sibling::*[1]" mode="in-ul"/>
  </xsl:template>

  <xsl:template match="para[ @bullet = 0 ]" mode="in-ul"/><!-- stop -->

</xsl:stylesheet>

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--