xsl-list
[Top] [All Lists]

[xsl] Grouping Problem in HTML Hedear Tag

2006-06-29 23:27:51
Dear All,

Please Help..............

I am so confused in Grouping style. I am new about apply Group. Some text
(next <h1> text) is missing in my output files. So Please Check my files....
My following Xml file is

XML File
------------

<html>
<body>
<div>
 <h1>Heading 1.</h1>
 <p>Some text here..</p>
 <p>Sahoo</p>
</div>
<div>
 <h2>Heading 2...</h2>
 <p>text here....</p>
<!-- If i am creat another <h2> text here, its not converting properly. -->

</div>
<div>
<h3>Heading 3.....</h3>
 <p>Some text here......</p>
</div>
<div>
 <h1>Again Heading 1.</h1>
 <p>Some text here..</p>
 <p>Introduction to Wi-Fi</p>
</div>
<div>
 <h2>Again Heading 2...</h2>
 <p>text here....</p>
 <p>History and Basics</p>
</div>
<div>
<h3>Again Heading 3.....</h3>
 <p>Some text here......</p>
</div>
</body>
</html>

and My XSL file
--------------------

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

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

<xsl:template match="body">
   <document>
       <xsl:for-each-group select="*" group-starting-with="h1">
          <section1>
    <title><xsl:value-of select="current-group()[1]/h1" /></title>
  <xsl:choose>
   <xsl:when test="p">
   <xsl:apply-templates select="p"/>
   </xsl:when>

  </xsl:choose>
    <xsl:for-each-group select="current-group()[position() &gt; 1]"
group-starting-with="h2">
                  <section2>
    <title><xsl:value-of select="current-group()[1]/h2"/></title>
  <xsl:choose>
   <xsl:when test="p">
   <xsl:apply-templates select="p"/>
   </xsl:when>

  </xsl:choose>
    <xsl:for-each-group select="current-group()[position() &gt; 1]"
group-starting-with="h3">
          <section3>
          <title><xsl:value-of select="current-group()[1]/h3" /></title>
  <xsl:choose>
   <xsl:when test="p">
   <xsl:apply-templates select="p"/>
   </xsl:when>

  </xsl:choose>

          </section3>
                      </xsl:for-each-group>
  </section2>
              </xsl:for-each-group>
          </section1>
       </xsl:for-each-group>
   </document>
</xsl:template>

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

</xsl:stylesheet>

Now my out put ---------

<?xml version="1.0" encoding="UTF-8"?>
<document>
   <section1>
      <title>Heading 1.</title>
      <para>Some text here..</para>
      <para>Sahoo</para>
      <section2>
         <title>Heading 2...</title>
         <para>text here....</para>
         <section3>
            <title>Heading 3.....</title>
            <para>Some text here......</para>
         </section3>
      </section2>
   </section1>
<!-- Missing in Next <h1> text.. -->

</document>

Please suggest me, what is wrong.

Thanks and Regards

Byomkesh


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