[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