I suspect that your XML source contains escaped HTML markup. This is always a bad idea. Because the markup is disguised by escaping it, it won't be recognized by the XML parser: you have to extract it as text and put it back through another stage of parsing, e.g. using an extension like saxon:parse().
Michael Kay
http://www.saxonica.com/
Author, XSLT Programmer's Reference and XPath 2.0 Programmer's Reference