xsl-list
[Top] [All Lists]

RE: A grouping question ?

2003-10-31 15:49:29
Hi

Try this stylesheet:
  <xsl:key match="Paragraph" name="group"
use="generate-id(preceding-sibling::Paragraph[(_at_)bullet='false'][1])"/>
  <xsl:template match="Content">
    <html>
      <xsl:apply-templates select="Paragraph[(_at_)bullet='false']"/>
    </html>
  </xsl:template>
  <xsl:template match="Paragraph">
    <p>
      <xsl:apply-templates/>
    </p>
    <xsl:if test="key('group',generate-id())[1]">
      <ul>
        <xsl:apply-templates mode="bullet"
select="key('group',generate-id())[(_at_)bullet='true']"/>
      </ul>
    </xsl:if>
  </xsl:template>
  <xsl:template match="Paragraph" mode="bullet">
    <li>
      <xsl:apply-templates/>
    </li>
  </xsl:template>
  <xsl:template match="Text">
    <xsl:value-of select="@txt"/>
  </xsl:template>

Regards,
Americo Albuquerque


-----Original Message-----
From: owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com 
[mailto:owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com] On Behalf Of 
Emilio Gustavo Ormeño
Sent: Friday, October 31, 2003 12:35 PM
To: XSL-List(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] A grouping question ?


Hi, I don't know if this is a grouping question, but given 
than I don't 
know the way to solve it. I need your help. This is my problem:

I have a XML file such as:

<Content>
    <Paragraph bullet='false'>
        <Text txt='Hello World'/>
    </Paragraph>
    <Paragraph bullet='true'>
        <Text txt='First Bulleted Hello World'/>
    </Paragraph>
    <Paragraph bullet='true'>
        <Text txt='Second Bulleted Hello World'/>
    </Paragraph>
    <Paragraph bullet='false'>
        <Text txt='A normal line of text'/>
    </Paragraph>
    <Paragraph bullet='true'>
        <Text txt='Another bulleted line'/>
    </Paragraph>
    <Paragraph bullet='true'>
        <Text txt='A second bulleted line'/>
    </Paragraph>
</Content>   

And I want an HTML output like the following:

<html>
    <p>Hello World</p>
    <ul>
        <li>First Bulleted Hello World</li>
        <li>Second Bulleted Hello World</li>
    </ul>
    <p>A normal line of text</p>
    <ul>
        <li>Another bulleted line</li>
        <li>A second bulleted line</li>
    </ul>
</html>

I thought that it was a grouping problem, but when I tried to 
solve it, 
I realized that this is not a "normal" grouping problem.

Can someone tell me a way to solve it -- if it exists....

Thanks
Emilio


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




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



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