[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
RE: [xsl] trouble getting at node
Subject: RE: [xsl] trouble getting at node From: dan@xxxxxxxxxxxxx Date: Mon, 16 Jan 2006 19:17:22 -0500 (EST) |
I just modified an existing stylesheet that I have and it works: <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="/"> <playlist> <trackList> <xsl:for-each select="MPL/Item"> <xsl:call-template name="songs" /> </xsl:for-each> </trackList> </playlist> </xsl:template> <xsl:template name="songs"> <track> <location> <xsl:value-of select="Field[@Name='Filename'] " /> </location> <title> <xsl:value-of select="Field[@Name='Name'] " /> </title> </track> </xsl:template> </xsl:stylesheet> Thanks for all the help, as always! Dan > dan@xxxxxxxxxxxxx wrote: > >> runtime error: file jriver.xsl element element in >> jriver.php on line 16 > >> Warning: xsl:element : invalid name in jriver.php on line >> 16 > >> Also, I would actually like to rename the elements in the >> result tree, something like this: > >> <playlist> >> <tracklist> >> <track> >> <location>E:\Rap\DJ Mark Farina\Connect\Mark Farina - >> Connect - 08 - Martin Venetjoki , Really Don't >> Stop.mp3</location> >> <creator>DJ Mark Farina</creator> >> </track> >> ... >> </tracklist> >> <playlist> > >> where Filename becomes location and Artist becomes >> creator. > > All these are the same problem. You have to define how to > map attribute values to element names. Some values aren't > legal names, and you want to translate others. > > If you want to select only a well-defined subset of the > Fields: > > > <?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[@Name='Filename']"> > <location> > <xsl:apply-templates/> > </location> > </xsl:template> > > <xsl:template match="Field[@Name='Artist']"> > <creator> > <xsl:apply-templates/> > </creator> > </xsl:template> > > ... > > </xsl:stylesheet> > > You can have a default to use the attribute value as > element name, and select the right fields in the > apply-templates: > > <?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 select="Field[...]"/> > </xsl:copy> > </xsl:template> > > <xsl:template match="Field[@Name='Filename']"> > <location> > <xsl:apply-templates/> > </location> > </xsl:template> > > <xsl:template match="Field[@Name='Artist']"> > <creator> > <xsl:apply-templates/> > </creator> > </xsl:template> > > ... > > <xsl:template match="Field"> > <xsl:element name="{@Name}"> > <xsl:apply-templates/> > </xsl:element> > </xsl:template> > > </xsl:stylesheet> > > --drkm > > > > > > > > > > > > > > > > > > > > > > > > ___________________________________________________________________________ > Nouveau : tiliphonez moins cher avec Yahoo! Messenger ! Dicouvez les > tarifs exceptionnels pour appeler la France et l'international. > Tilichargez sur http://fr.messenger.yahoo.com > > http://www.streampad.com username - dan
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] trouble getting at node, Florent Georges | Thread | RE: [xsl] trouble getting at node, Haarman, Michael |
RE: [xsl] trouble getting at node, dan | Date | RE: [xsl] trouble getting at node, Florent Georges |
Month |