Altova Mailing List Archives>Archive Index >microsoft.public.xsl Archive Home >Recent entries [Thread Prev] >Thread Next - Re: group flat sibling nodes by content group flat sibling nodes by contentTo: NULL Date: 11/3/2004 11:43:00 PM Hi everyone, I've tried all day but stuck now - I've seen solutions for
problems similar to mine - but wasn't able to re-use 'em:
my input is like
<doc>
<p>text</p>
<p>Start Table</p>
<p>Special Content text</p>
<p>Stop Table</p>
<p>text</p>
</doc>
and want to transform ist to something like
<doc>
<p>text</p>
<table>
<p>Special Content text</p>
</table>
<p>text</p>
</doc>
but my result-tree is
<doc>
<p>text</p>
<table>
<p>Special Content text</p>
<p>Stop Table</p>
<p>text</p>
</table>
<p>Special Content text</p>
<p>Stop Table</p>
<p>text</p>
</doc>
with this code
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="@* | node()"><xsl:copy> <xsl:apply-templates
select="@* | node()"/> </xsl:copy></xsl:template>
<!-- ? ? ? ? ? ? -->
<xsl:key name="TableGroup" match="p[contains(.//text(),'Start')]"
use="generate-id(preceding-sibling::p[contains(.//text(),'Start')][1])"/>
<xsl:template match="p[contains(.//text(),'Start')]">
<table>
<xsl:copy-of select="key(TableGroup,generate-id(.))" />
</table>
</xsl:template>
</xsl:stylesheet>
- but doesnt work - as shown
thank you very much
johannes
| ||||||
| Company | Legal | Press | Partners | Careers | Sitemap | Contact Us | Altova Blog | Mobile | Full Site | |||
|
