|
Subject: RE: [xsl] First occurence of a repeating value From: Jarno.Elovirta@xxxxxxxxx Date: Thu, 7 Nov 2002 09:19:33 +0200 |
Hi,
> My XML is of the form:
>
> <main>
> <sub>
> <entry>
> <item1>val1</item1>
> <item2>val2</item2>
> <item3>val3</item3>
> </entry>
> <entry>
> <item1>val4</item1>
> <item2>val2</item2>
> <item3>val5</item3>
> </entry>
> <entry>
> <item1>val6</item1>
> <item2>val2</item2>
> <item3>val7</item3>
> </entry>
> </sub>
> </main>
>
> I want the output to be as shown below, using "val2" once as
> the title,
> and listing all the other values after that:
>
> Title: val2
> ------
> Item1: val1
> Item3: val3
>
> Item4: val4
> Item5: val5
>
> Item6: val6
> Item7: val7
>
> Any suggestions on how to accomplish this? Thanks in advance.
For example,
<xsl:output method="text"/>
<xsl:template match="/">
<xsl:apply-templates select="main/sub"/>
</xsl:template>
<xsl:template match="sub">
<xsl:text />Title: <xsl:value-of select="entry/item2"/>
<xsl:text>
------
</xsl:text>
<xsl:for-each select="entry/*[not(self::item2)][position() mod 2 = 1]">
<xsl:for-each select=". | following-sibling::*[not(self::item2)]">
<xsl:text/>Item<xsl:value-of select="substring(., string-length(.))"/>: <xsl:value-of select="."/>
<xsl:text>
</xsl:text>
</xsl:for-each>
<xsl:text>
</xsl:text>
</xsl:for-each>
</xsl:template>
Cheers,
Jarno
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| RE: [xsl] First occurence of a repe, Américo Albuquerque | Thread | [xsl] how to clear document buffer, Ming Yu |
| Re: [xsl] how to clear document buf, Mike Brown | Date | [xsl] Can I group in three levels?, Felix Garcia |
| Month |