RE: [xsl] trouble getting at node

Subject: RE: [xsl] trouble getting at node
From: "Haarman, Michael" <mhaarman@xxxxxxxxx>
Date: Mon, 16 Jan 2006 17:14:23 -0600
> From: dan@xxxxxxxxxxxxx
> 
> <Item>
> <Field Name="Filename">E:\Rap\DJ Mark Farina\Connect\Mark 
> Farina - Connect
> - 08 - Martin Venetjoki , Really Don't Stop.mp3</Field>
> <Field Name="Artist">DJ Mark Farina</Field>
> <Field Name="Album">Connect</Field>
> <Field Name="Name">Martin Venetjoki , Really Don't Stop</Field>
> <Field Name="File Type">mp3</Field>
> <Field Name="Genre">Chill</Field>
> <Field Name="Date">36526</Field>
> <Field Name="Bitrate">128</Field>
> <Field Name="Media Type">Audio</Field>
> <Field Name="File Size">4196480</Field>
> <Field Name="Duration">262</Field>
> <Field Name="Track #">8</Field>
> <Field Name="Date Created">1055524929</Field>
> <Field Name="Date Modified">1054230842</Field>
> <Field Name="Date Imported">1055529132</Field>
> </Item>
> 


This stylesheet does what you want over the data you've provided, but fails
when the attribute names contain spaces, which are an error for element
names, IIRC.  Saxon gives a warning in any case and does not create the
those elements.


<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
                version="1.0">

  <xsl:output method="xml"/>

  <xsl:template match="/Item">
    <xsl:copy>
      <xsl:apply-templates/>
    </xsl:copy>
  </xsl:template>

  <xsl:template match="Field">
    <xsl:element name="{@Name}">
      <xsl:apply-templates/>
    </xsl:element>
  </xsl:template>

</xsl:stylesheet>



HTH,


-----------------------------------
Mike Haarman,
XSL Developer,
Internet Broadcasting Systems, Inc.

Current Thread