Subject: RE: [xsl] trouble getting at node From: dan@xxxxxxxxxxxxx Date: Mon, 16 Jan 2006 19:01:32 -0500 (EST) |
I would like to select only a few nodes. When I try the first example, I get an error. Here is what the result tree looks like: <Item> <location>E:\Rap\DJ Mark Farina\Connect\Mark Farina - Connect - 08 - Martin Venetjoki , Really Don't Stop.mp3</location> <creator>DJ Mark Farina</creator> Connect Martin Venetjoki , Really Don't Stop mp3 Chill 36526 128 Audio 4196480 262 8 1055524929 1054230842 1055529132 </Item> > 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, Florent Georges |
RE: [xsl] trouble getting at node, Florent Georges | Date | RE: [xsl] trouble getting at node, dan |
Month |