この関数を使用して、文字列から XML を読み取り、XSLT スタイル シートを適用しました。XML の小さな部分に対しては非常にうまく機能しています。
private static string TransformXML(String XML, String XSLT)
{
string output = String.Empty;
using (StringReader srt = new StringReader(XSLT))
{
using (StringReader sri = new StringReader(XML))
{
using (XmlReader xrt = XmlReader.Create(srt))
using (XmlReader xri = XmlReader.Create(sri))
{
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load(xrt);
using (StringWriter sw = new StringWriter())
using (XmlWriter xwo = XmlWriter.Create(sw, xslt.OutputSettings)) // use OutputSettings of xsl, so it can be output as HTML
{
xslt.Transform(xri, xwo);
output = sw.ToString();
}
}
}
}
return output;
}
しかし、XML の大部分では、正しくフォーマットされていることはわかっていても、エラーが発生します。
エラーの例を次に示します。名前の解析中に予期しないファイルの終わりが発生しました。行 1、位置 30001。
バッファリングには制限があると思いますが、うまくいきません。コードは SSIS パッケージ内にあり、さまざまなスクリプト タスクが XML を生成して変換します。
どんな助けにも感謝します!