web-dev-qa-db-ja.com

入力XMLと変換XSLが文字列である場合、XslCompiledTransformを使用するにはどうすればよいですか。変換結果を文字列として取得するにはどうすればよいですか?

1つの文字列inputXMLStringがあり、2番目の文字列にはtransformXSLStringという名前の変換XSLが含まれています。どちらも正しくフォーマットされたxmlです。

結果を文字列としても取得するために、C#でXslCompiledTransformを使用して変換を実行する方法、たとえばresultXMLString?

14
vanpersil

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();
    }
  }
}
19
Martin Honnen