This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Variable Array extract





Actually, the monthnames element cannot have a null namespace URI.  From
section 2.2:

   http://www.w3.org/TR/xslt#stylesheet-element

   "In addition, the xsl:stylesheet element may contain any element not
   from the XSLT namespace, provided that the expanded-name of the element
   has a non-null namespace URI."

So:

   <?xml version="1.0"?>
   <xsl:stylesheet
     xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
     version="1.0"
     xmlns:foo="http://foo.com";
     exclude-result-prefixes="foo">

   <foo: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>
   </foo:monthnames>

   <xsl:template match="/">
     <out>
       <xsl:value-of select="document('')/xsl:stylesheet/foo:monthnames"/>
     </out>
   </xsl:template>

   </xsl:stylesheet>

Dave



                                                                                                                                                 
                      Mike Brown <mike@skew.org>                                                                                                 
                      Sent by: owner-xsl-                To:      xsl-list@lists.mulberrytech.com                                                
                      list@lists.mulberrytech.           cc:      (bcc: David N Bertoni/Cambridge/IBM)                                           
                      com                                Subject: Re: [xsl] Variable Array extract                                               
                                                                                                                                                 
                                                                                                                                                 
                      08/05/2002 10:53 AM                                                                                                        
                      Please respond to xsl-list                                                                                                 
                                                                                                                                                 
                                                                                                                                                 



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





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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]