[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] Variable Array extract


Subject: Re: [xsl] Variable Array extract
From: Mike Brown <mike@xxxxxxxx>
Date: Mon, 5 Aug 2002 11:53:55 -0600 (MDT)

Alvin York wrote:
> 
> I have the following code snippet in an XSLT stylesheet that is converting 
> XML to HTML:
> 
> <xsl:variable name="monthnames">
>   <month number="1">January</month>
>   <month number="2">Febuary</month>
>   <month number="3">March</month>
>   <month number="4">April</month>
>   <month number="5">May</month>
>   <month number="6">June</month>
>   <month number="7">July</month>
>   <month number="8">August</month>
>   <month number="9">September</month>
>   <month number="10">October</month>
>   <month number="11">November</month>
>   <month number="12">December</month>
> </xsl:variable>
> 
> <xsl:variable name="month" select="number(substring(//Date,5,2))"/>
> <xsl:value-of select="$month"/>
> <xsl:value-of select="$monthnames/month[@number=$month]"/>
> 
> 
> The line <xsl:value-of select="$month"/> prints the month number just fine, 
> but the next line (trying to print the month name) gives me this error:
> 
> "An error occurred while getting or processing the formatter for XML to HTML 
> conversion."
> 
> What am I doing wrong?

Your variable is a result tree fragment, a type of object that is like a
node-set but upon which you can only perform string operations. You can
convert it to a node-set with the exsl:node-set($monthnames) extension
function or your XSLT processor's equivalent, if it doesn't support EXSLT.

A more portable way is to not use xsl:variable and just embed the lookup data
in the stylesheet. Put this at the top level of the stylesheet (before the
first template, typically)...

  <monthnames>
    <month number="1">January</month>
    ...
  </monthnames>

...and then access it as a true node-set:

  document('')/xsl:stylesheet/monthnames

   - Mike
____________________________________________________________________________
  mike j. brown                   |  xml/xslt: http://skew.org/xml/
  denver/boulder, colorado, usa   |  resume: http://skew.org/~mike/resume/

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



Current Thread
Keywords