|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: Matching similar rows in a table
FAQ,
> I want to transform the below source xml to the destination xml with
> a XSLT script. I run into problems trying to generate the
> <chapter></chapter> tags because there is no structural textual
> "signal" in the source XML to match the start/end of a chapter.
>
> The source XML is the export from a DB in the form of a table. Each
> page is in a row, only the first page has the chapter title, in the
> other page that column contains no data.
>
> The XSLT script has to pick up the special first row, create the
> chapter and name tags and insert the pages for the chapter until
> another special first row is detected.
>
> Alternatively I could generate XML which has the chapter name in each
> first column in the page row. Then the XSLT script will has to detect
> a change in the content of the first column and start a new chapter.
>
> How can I do this in XSLT?
A grouping problem, see <http://jenitennison.com/xslt/grouping>.
<xsl:template match="*[row]">
<xsl:for-each select="row[col[1]/node()]">
<chapter>
<name>
<xsl:value-of select="col[1]"/>
</name>
<xsl:apply-templates select="."/>
</chapter>
</xsl:for-each>
</xsl:template>
<xsl:template match="row">
<page>
<content>
<xsl:value-of select="col[3]"/>
</content>
</page>
<xsl:apply-templates
select="following-sibling::row[1][not(col[1]/node())]"/>
</xsl:template>
Cheers,
Jarno - Front Line Assembly: Plasticity
|
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








