Re: [xsl] Re-arranging an XML file

Subject: Re: [xsl] 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. 
________________________________________________________________________

Current Thread