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

Re: [xsl] select lang attribute problem


Subject: Re: [xsl] select lang attribute problem
From: Francis Norton <francis@xxxxxxxxxxx>
Date: Wed, 28 Feb 2001 19:12:23 +0000


cutlass wrote:
> 
> hello all,
> 
> any ideas on selecting nodes based on the 2 following conditions being met
> 
> a) existance of lang attribute is boolean false  ( in other words when
> there is no explicit lang attribute select it as a default)
> 
> if a) is TRUE then
> 
> b) presence of lang="en" is boolean true ( the 'en' would be supplied by
> a xsl:param)
> 
> a solution at the top level of xsl would be most desirable with an
> xsl:param setting the desired language to extract ............ so far
> i've got lots of methods,
> just can't find anything elegant enough to apply to a larger system for
> multilingual support. any comments or pointers with how people are
> approaching multilingual xml/xsl..greatly appreciated.
> 

Hi Cutlass,

I couldn't get entirely top level because you can't put variables in the
predicates of match expressions in templates, but you could do something
like this:

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
	<xsl:param name="lang">en</xsl:param>
	<xsl:template match="test">
		<xsl:if test="not(@xml:lang) or @xml:lang=$lang">
			<xsl:value-of select="node()"/>
		</xsl:if>
	</xsl:template>
</xsl:stylesheet>

(If you *could* put variables in template match expressions it would
just be:
	<xsl:template match="test[not(@xml:lang) or @xml:lang=$lang]">
and no xsl:if required)

Francis.

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



Current Thread
Keywords
xsl