Все, что содержится в разделе CDATA, не является разметкой - это всего лишь одномерный текст.
Либо обработайте его как текст (что некрасиво и неудобно), либо напишите функцию расширения, которая анализирует свой аргумент в XmlDocument и возвращает этот результат обратно. Затем вы можете обработать результат с помощью XSLT:
<xsl:apply-templates select="my:parse(theString)/*"/>
Конечно, чтобы это работало, вы должны убедиться, что текст, передаваемый в функцию расширения my:parse()
, является правильно сформированным (сериализованным) XML-документом - что в вашем примере это не так.