Re: [xsl] A grouping question ?

Subject: Re: [xsl] A grouping question ?
From: Richard Lewis <richard.lewis@xxxxxxxxx>
Date: Fri, 31 Oct 2003 13:55:49 +0000
On Friday 31 Oct 2003 12:34, Emilio Gustavo Ormeño 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>

First, do you really need an element, 'Text' with an attribute, 'txt'? Why not 
just have <Text>...</Text>?

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

Does this mean that you want to format 'Paragraph' elements where 
@bullet='true' as <li>s and 'Paragraph's where @bullet='false' as <p>s?

<xsl:for-each select="para">
	<xsl:if test="@bullet = 'true' and preceding-sibling::[1]\@bullet='false'">
		<ul>
	</xsl:if>
	<xsl:choose>
		<xsl:when test="@bullet = 'true'">
			<li><xsl:value-of select="text" /></li>
		</xsl:when>
		<xsl:otherwise>
			<p><xsl:value-of select="text" /></p>
		</xsl:otherwise>
	</xsl:choose>
	<xsl:if test="@bullet = 'true' and following-sibling::[1]\@bullet='false'">
		</ul>
	</xsl:if>
</xsl:for-each>

(Not tested!)

Cheers,
Richard


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


Current Thread