|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: First occurence of a repeating value
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
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








