this is a classic problem - you will run into it all the time. the important point is that £ is resolved by the parser, i.e. by the time you get a look in it has been converted to its character. generally these issues are caused by the encoding attribute that is specified at the top of your xml <?xml version="1.0" encoding="ISO-8859-1" ?> People have a nasty habit of sticking any old encoding in here, without considering what encoding they are using - for example different versions of windows (95, 98, NT) have used different encoding schemes. Also be careful if you use XSLT - you have to tell it how to output it <xsl:output encoding="iso-8859-1"/>. Otherwise you will end up in a world of pain ;) my general advice is to always replace any characters with values below 32 and above 128 with a tag - this allows you to handle the problem. consider using a <character code="163"/> tag, this way you can do what you like. hope this helps.
"When the only tool you have is a hammer, a sore thumb you will have."