10 May
2023
10 May
'23
10:34 p.m.
Hi Andrew,
'contains(.,">")', … return true, as expected.
The difference is that < and > don’t have to be encoded if they are used in strings. You can write… contains('', '<') …but the following query is invalid: contains('<', '&')
I can get the expected result if I double-escape the entity: 'contains(.,"&")'
You can use the string constructor syntax, it’s often better readable: xquery:eval( ``[contains(., "&")]``, map { '': <foo>{ ``[&<]`` }</foo> } ) With recent versions of BaseX, you can also use simple backticks (that’s XQuery 4 syntax, it will be documented soon). The following queries are equivalent: `&` ``[&]`` "&" Hope this helps, Christian