xsl-list
[Top] [All Lists]

RE: trouble getting at node

2006-01-16 17:17:22
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[(_at_)Name='Filename']
" />
                                </location>

                                <title>
                                        <xsl:value-of 
select="Field[(_at_)Name='Name']
" />
                                </title>

                        </track>
                </xsl:template>
</xsl:stylesheet>

Thanks for all the help, as always!

Dan

dan(_at_)streampad(_dot_)com 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[(_at_)Name='Filename']">
        <location>
          <xsl:apply-templates/>
        </location>
      </xsl:template>

      <xsl:template match="Field[(_at_)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[(_at_)Name='Filename']">
        <location>
          <xsl:apply-templates/>
        </location>
      </xsl:template>

      <xsl:template match="Field[(_at_)Name='Artist']">
        <creator>
          <xsl:apply-templates/>
        </creator>
      </xsl:template>

      ...

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

    </xsl:stylesheet>

--drkm























___________________________________________________________________________
Nouveau : téléphonez moins cher avec Yahoo! Messenger ! Découvez les
tarifs exceptionnels pour appeler la France et l'international.
Téléchargez sur http://fr.messenger.yahoo.com

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--




http://www.streampad.com
username - dan


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



<Prev in Thread] Current Thread [Next in Thread>