xsl-list
[Top] [All Lists]

RE: [xsl] Get value from $Variable

2009-03-17 09:48:23
David,

We just recently had to translate our product where I work, and translating the 
content within our XSLT was a large part of it. So we encountered a very 
similar problem to the one Michael has here. Usually I'm inclined to agree with 
you, but since the language resource is stored in an external file, you'd have 
to do wrap a <xsl:for-each select="document('language.xml')">...</xsl:for-each> 
around every key() call you'd make, in order to get the context document set 
correctly. We ended up using an approach similar to the one recommended by 
Florent, and it works very well for us.

Of course, if you were using XSLT 2.0, you could pass the document as the third 
argument, but we definitely didn't have that option. :)

~ Scott


-----Original Message-----
From: David Carlisle [mailto:davidc(_at_)nag(_dot_)co(_dot_)uk] 
Sent: Tuesday, March 17, 2009 5:58 AM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: Re: [xsl] Get value from $Variable



whenever you have an idiom of the form

)/Languages/Language[(_at_)Language_Id=$Language_Id]

I think it's worth using a key, it might be quicker but whether it is or
isn't it makes the code a whole lot easier to read.


     <xsl:for-each select="Weekdays/Day">
          <xsl:variable name="Current_Id" select="@Id"/>
          <xsl:value-of select="$Language/Weekdays/Weekday[(_at_)Wd_Id =
$Current_Id]"/><xsl:if test="following-sibling::*[1]">, </xsl:if>
     </xsl:for-each>

could all be replaced by:

<xsl:value-of select="Weekdays/Day/key('k',@Id,$Language)" separator=", "/>


where the key is something like


<xsl:key name="k" match="Weekday" use="@Wd_Id"/>

David

________________________________________________________________________
The Numerical Algorithms Group Ltd is a company registered in England
and Wales with company number 1249803. The registered office is:
Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.

This e-mail has been scanned for all viruses by Star. The service is
powered by MessageLabs. 
________________________________________________________________________

--~------------------------------------------------------------------
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>
--~--


--~------------------------------------------------------------------
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>