xsl-list
[Top] [All Lists]

Re: [xsl] Re: XPath to select node according to xml:lang attribute

2011-04-15 13:19:28
On 04/15/2011 01:53 PM, Philipp Kursawe wrote:
Well I do have a question to that still:

<root>
<text id="color" xml:lang="en">colour</text>
<text id="color" xml:lang="en-us">color</text>
</root>

using //text[@id='color' and (lang('en-us') or lang('en')]/text() will
always return "colour" although I am expecting "color". I know
attributes are not ordered, but can you not have the perfect match be
in the selected result first?

These are filters, not ordered operations.  If you want an ordered
selection, you’ll need to be more explicit; in XSLT 1.0, that means
using multiple variables instead of a single XPath.

Hmm I cannot use XSLT in my context. I can only use XPath. So I guess
I would have to select "en-us" first and see if there is a result, if
not select "en" and so on. Or could I "||" chain multiple XPath
selects?
//text[@id='color' and lang('en-us')] || //text[@id='color' and
lang('en')] || //text[@id='color']

Phil

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