Umbraco uses the MSXML 6.0 parser. Microsoft specifies the following:
The Microsoft Core XML Services (MSXML) 6.0 release provides standards-conformant implementations of:
* XML 1.0 (DOM & SAX2 APIs)
* XML Schema (XSD) 1.0
* XPath 1.0
* XSLT 1.0
Now... in your example of substring()... that's actually an XSLT 1.0 feature so you don't need to do anything special at all.
But... if you did need to do something not provided by the MSXML parser, there are four ways to get functionality beyond that of XSLT 1.0:
1. Look in the umbraco.library extension included with umbraco. There are a lot of extremely useful functions in there!
2. Look in the EXSLT extensions included with umbraco. You will need to add these to the header block of your xslt.
3. Write your own in-line functions in javascript or c# (or any .net language)
4. Create your own xslt extension library
The first two are easiest. When you're in the xslt editor of umbraco, click the Insert Value-of icon on the toolbar. Then click the "Get Extension" button. You'll find all sorts of goodies in there.
There are various books and blogs and wiki articles on in-line functions and making your own xslt extensions.
cheers,
doug.
MVP 2007/2008 - Official Umbraco Trainer for North America -
Percipient Studios