Subject: RE: [xsl] trouble getting at node From: Florent Georges <darkman_spam@xxxxxxxx> Date: Tue, 17 Jan 2006 00:51:00 +0100 (CET) |
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
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] trouble getting at node, dan | Thread | RE: [xsl] trouble getting at node, dan |
RE: [xsl] trouble getting at node, Haarman, Michael | Date | RE: [xsl] trouble getting at node, dan |
Month |