Subject: Re: Re-arranging an XML file
From: David Carlisle <davidc@xxxxxxxxx>
Date: Tue, 13 Jan 2009 13:46:46 GMT
|
Thanks for posting a clear example, that always helps. In future it also
helps to say if you want xslt 2 or xslt 1, in this case it wouldn't make
much difference, but in other cases it can make a lot....
Basically you want to set up a key to handle the association
of artists and titles.
David
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="Catalog">
<Catalog>
<xsl:apply-templates select="cds/cd"/>
</Catalog>
</xsl:template>
<xsl:template match="cd">
<cd>
<xsl:copy-of select="title"/>
<artist><xsl:value-of select="key('artist',number)/name"/></artist>
</cd>
</xsl:template>
<xsl:key name="artist" match="artist" use="number"/>
</xsl:stylesheet>
produces
$ saxon cata.xml cata.xsl
<?xml version="1.0" encoding="utf-8"?>
<Catalog>
<cd>
<title>Empire Burlesque</title>
<artist>Bob Dylan</artist>
</cd>
<cd>
<title>Hide Your Heart</title>
<artist>Bonnie Tyler</artist>
</cd>
</Catalog>
________________________________________________________________________
The Numerical Algorithms Group Ltd is a company registered in England
and Wales with company number 1249803. The registered office is:
Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.
This e-mail has been scanned for all viruses by Star. The service is
powered by MessageLabs.
________________________________________________________________________
|