xsl-list
[Top] [All Lists]

[xsl] Grouping: unordered lists from xml to html

2008-10-16 05:11:59
Hi List,
I am doing html to xml conversion and we need grouping in this regard. I found one solution within the list which is not working as per requirement. I sharing input, output and required output.

XML
<summary>
<para bullet="1">This is paragraph 1</para>
<para bullet="0">This is paragraph 2</para>
<para bullet="1">This is paragraph 3</para>
<para bullet="1">This is paragraph 4</para>
</summary>

XSL
<xsl:template match="para[(_at_)bullet=0]">
  <p><xsl:apply-templates/></p>
  <xsl:apply-templates select="following-sibling::para[1]"/>
</xsl:template>

<xsl:template 
match="para[(_at_)bullet=1][preceding-sibling::para[1][(_at_)bullet=1]]">
    <li><xsl:apply-templates/></li>
    <xsl:apply-templates select="following-sibling::para[1]"/>
</xsl:template>

<xsl:template
match="para[(_at_)bullet=1][not(preceding-sibling::para[1][(_at_)bullet=1])]">
  <ul>
    <li><xsl:apply-templates/></li>
    <xsl:apply-templates select="following-sibling::para[1]"/>
</ul>
</xsl:template>

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

OUTPUT
  <ul>
      <li>This is paragraph 1</li>
      <p>This is paragraph 2</p>
      <ul>
         <li>This is paragraph 3</li>
         <li>This is paragraph 4</li>
      </ul>
   </ul>

REQUIRED OUTPUT
<ul>
      <li>This is paragraph 1</li>
 </ul>
      <p>This is paragraph 2</p>
      <ul>
         <li>This is paragraph 3</li>
         <li>This is paragraph 4</li>
      </ul>



--~------------------------------------------------------------------
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>
--~--

<Prev in Thread] Current Thread [Next in Thread>