.NET Framework - ends-with doesn't work

Asked By tshad on 07-Aug-08 05:50 PM
I am using Visual Studio 2005 and ends-with doesn't work there.

I am trying:

not((starts-with(name(), 'GC') or (starts-with(name(), 'CC')) and
ends-with(name(),'-POUND-') and

and I get an error:

ends-with() is an unknown XSLT function.

But when I look it up, it is there in various places, such as:

http://www.w3schools.com/Xpath/xpath_functions.asp#string

Does 2005 use a different version of XSLT?

Thanks,

Tom




Joe Fawcett replied on 08-Aug-08 02:49 AM
'ends-with' is XPath 2.0, therefore, for all practical purposes, you need an
XSLT 2.0 processor. None of Microsoft's products support version 2.0.
You can either re-write your XSLT of use Saxon which has a free .NET
version. You won't ,however, be able to debug in Visual Studio, you'll need
to use something like Altova XML Spy.

--

Joe Fawcett (MVP - XML)
http://joe.fawcett.name
tshad replied on 08-Aug-08 12:58 PM
Are they planning to?

Thanks,

Tom
Joe Fawcett replied on 09-Aug-08 06:30 AM
Yes, but no timescales announced.

--

Joe Fawcett (MVP - XML)
http://joe.fawcett.name
Dimitre Novatchev replied on 10-Aug-08 11:58 PM
As others have explained, the Microsoft XSLT processors do not support XSLT
2.0.

A workaround is to use the following XPath expression (or to wrap it in a
named template):

$pPattern
=
substring
($pString,
string-length($pString) - string-length($pPattern)+1
)


Cheers,
Dimitre Novatchev
dman replied on 22-Aug-08 10:28 PM
Thanks heaps for that - I just came looking for such a pattern, and
your post solved it immediately.
I could have experimented and done it myself, but cut&paste is so much
easier!
santh thomas replied to Dimitre Novatchev on 15-Feb-12 11:59 PM
Great.This works.



Thanks

Santh