[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Variable Array extract

Subject: Re: Variable Array extract
From: David N Bertoni/Cambridge/IBM <david_n_bertoni@xxxxxxxxxx>
Date: Mon, 5 Aug 2002 11:20:32 -0700
xsl variable array



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@xxxxxxxx>                                                                                                 
                      Sent by: owner-xsl-                To:      xsl-list@xxxxxxxxxxxxxxxxxxxxxx                                                
                      list@xxxxxxxxxxxxxxxxxxx           cc:      (bcc: David N Bertoni/Cambridge/IBM)                                           
                      com                                Subject: Re:  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


Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.