Чего вы хотите достичь?Если вы используете .NET 2.0 или более позднюю версию, вы вообще не должны использовать XslTransform, а скорее XslCompiledTransform.И если вы хотите выводить простой текст, то нет смысла пытаться загрузить этот результат преобразования в XmlDocument, поскольку эта объектная модель должна содержать правильно сформированный XML-документ, а не какой-либо простой текст.Поэтому я думаю, что по этой причине вы получаете ошибку, ваш результат преобразования - простой текст с одним текстовым узлом, а затем вы пытаетесь загрузить этот единственный текстовый узел в XmlDocument, который ищет корневой элемент, который не существует.Рассмотрим, какую версию .NET вы используете / target и какой тип вывода вы хотите (например, простой текстовый файл или строку с результатом преобразования), тогда мы можем указать вам правую перегрузку метода Transform XslCompiledTransform http://msdn.microsoft.com/en-us/library/system.xml.xsl.xslcompiledtransform.transform.aspx для получения этого результата.
Например, если входные данные преобразования представляют собой XmlDocument или другой объект, реализующий IXPathNavigable
, вы можете использовать http://msdn.microsoft.com/en-us/library/ms163435.aspx для преобразования в StringWriter, чтобы получить результат String какследует:
XslCompiledTransform proc = new XslCompiledTransform();
proc.Load(xslPath);
string result;
using (StringWriter sw = new StringWriter())
{
proc.Transform(docXml, null, sw);
result = sw.toString();
}
return result;