This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: select lang attribute problem
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