Currently using prefix matching (this is what needs
improving/fixing) I can do something like:
<xsl:variable name="fullname" select="string-join(($lang,
$name), ':')"/> <xsl:for-each select="$source">
<xsl:value-of select="if (string(@*[name() eq $fullname])) then
@*[name() eq $fullname] else @*[name() eq $name]"/></xsl:for-each>
It's not clear to me why you are concerned with the prefix.
I assume that when you wrote this:
<global-element
xmlns:fr="http://www.somedomain.com/fr"
xmlns:en="http://www.somedomain.com/fr"
xmlns:de="http://www.somedomain.com/fr"
more-attributes=". . ."
you really meant
<global-element
xmlns:fr="http://www.somedomain.com/fr"
xmlns:en="http://www.somedomain.com/en"
xmlns:de="http://www.somedomain.com/de"
more-attributes=". . ."
and then your code above would become something like
<xsl:variable name="fullname"
select="QName(concat('http://www.somedomain.com/', $lang),
$name)"/>
<xsl:for-each select="$source">
<xsl:value-of select="if (string(@*[node-name() eq $fullname]))
then @*[node-name() eq $fullname]
else @*[name() eq $name]"/>
</xsl:for-each>
Regards,
Michael Kay
http://www.saxonica.com/
http://twitter.com/michaelhkay
--~------------------------------------------------------------------
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>
--~--