< before it transforms it and then puts them back again afterwards. You can disable the afterwards transformation by enclosing the script in a
<xsl:text disable-output-escaping="yes"> ...
</xsl:text> pair of tags. But you have to encode your angle brackets and ampersands as entities too, otherwise you'll get a syntax error. So
& gets transformed into
That took me an hour and a half to work out again (I forgot how to do it) so I thought I would write it down this time.