Hi Emilio,
Here is another XSL, solving the problem --
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xalan="http://xml.apache.org/xalan">
<xsl:output method="html" version="1.0"
encoding="UTF-8" indent="yes"/>
<xsl:template match="/Content">
<html>
<xsl:for-each select="Paragraph">
<xsl:if test="@bullet = 'false'">
<p>
<xsl:value-of select="Text/@txt"/>
</p>
</xsl:if>
<xsl:if test="((@bullet = 'true') and
(preceding-sibling::Paragraph[1][(_at_)bullet = 'false']))
">
<ul>
<li>
<xsl:value-of select="Text/@txt"/>
</li>
<xsl:call-template name="print-li-tags">
<xsl:with-param name="xml-subset"
select="following-sibling::Paragraph"/>
</xsl:call-template>
</ul>
</xsl:if>
</xsl:for-each>
</html>
</xsl:template>
<xsl:template name="print-li-tags">
<xsl:param name="xml-subset"/>
<xsl:if test="$xml-subset[1][(_at_)bullet = 'true']">
<li>
<xsl:value-of select="$xml-subset[1]/Text/@txt"/>
</li>
</xsl:if>
<xsl:variable name="ns">
<xsl:for-each select="$xml-subset[position() >
1]">
<Paragraph bullet="{(_at_)bullet}">
<xsl:value-of
select="xml-subset[1]/Text/@txt"/>
</Paragraph>
</xsl:for-each>
</xsl:variable>
<xsl:for-each
select="xalan:nodeset($ns)/Parapgarh">
<xsl:if test="(position() = 1) and (@bullet =
'false')">
<p>
<xsl:value-of select="Text/@txt"/>
</p>
<xsl:call-template name="print-li-tags">
<xsl:with-param name="xml-subset"
select="xalan:nodeset($ns)/Paragraph[position() >
1]"/>
</xsl:call-template>
</xsl:if>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Regards,
Mukul
--- Emilio_Gustavo_Ormeño <eormeno(_at_)iinfo(_dot_)unsj(_dot_)edu(_dot_)ar>
wrote:
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
__________________________________
Do you Yahoo!?
Exclusive Video Premiere - Britney Spears
http://launch.yahoo.com/promos/britneyspears/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list