Как использовать XslCompiledTransform при вводе XML и преобразовании XSL являются строками. Как получить результат преобразования в виде строки?

У меня есть одна строка inputXMLString, а вторая - трансформация XSL с именем transformXSLString. Оба они правильно отформатированы xml.

Как выполнить преобразование с помощью XslCompiledTransform в С#, чтобы получить результат также как строку, скажем, resultXMLString?

Ответ 1

Вы можете использовать XmlReader и StringReader соответственно StringWriter:

string inputXML = "...";
string transformXSL = "...";

XslCompiledTransform proc = new XslCompiledTransform();

using (StringReader sr = new StringReader(transformXSL))
{
  using (XmlReader xr = XmlReader.Create(sr))
  {
    proc.Load(xr);
  }
}

string resultXML;

using (StringReader sr = new StringReader(inputXML))
{
  using (XmlReader xr = XmlReader.Create(sr))
  {
    using (StringWriter sw = new StringWriter())
    {
      proc.Transform(xr, null, sw);
      resultXML = sw.ToString();
    }
  }
}