xsl-list
[Top] [All Lists]

Re: [xsl] Case-insensitive filter match for template wanted

2017-03-28 04:57:11


So I tried:
<x:template match="section[ parameter/@name='Rule' ][ upper-case( 
parameter/value/@entry ) = 'INPUT' ]" mode="processes" >
 
But that gives me (using Saxon HE9.7.0.5):
“A sequence of more than one item is not allowed as the first argument of 
upper-case() ("INPUT", .....”

Well you could write 

match="section[ parameter/@name='Rule' ][ parameter/value/upper-case(@entry) 
= 'INPUT' ]"

But the "correct" way to do case-insensitive matching is to use a collation:

match="section[ parameter/@name='Rule' ][ parameter/value@entry = 'INPUT' ]"
default-collation="http://www.w3.org/2013/collation/UCA?strength=2";

It depends a bit about whether you care what happens to characters like 
"dotless i" (which probably aren't going to appear in your input unless you are 
Turkish).


Michael Kay
Saxonica
--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--
<Prev in Thread] Current Thread [Next in Thread>