入力: 私の入力ファイルは XML ファイルです。これらは、SSIS の foreach ファイル列挙子によって読み取られます。
プロセス: SSIS スクリプト コンポーネント (C#) は、変数からファイル名を読み取ります。XML を必要な形式に変換するための XSL ファイルを作成しました。スクリプト タスクは XSL ファイルを使用し、XML ファイルを (テキストに) 変換します。
使用したコードは次のとおりです。
public override void CreateNewOutputRows()
{
XslCompiledTransform transformer = new XslCompiledTransform();
transformer.Load(_xsltFile);
transformer.Transform(_fileName, @"C:\macro3\outputTestFile.txt");
}
問題:
予想どおり、これにより、変換されたテキスト コンテンツが前述の出力ファイルに書き込まれます。各行を読み込んで処理し、データベースにロードしたい。
さて、ファイルへの書き込み、再度の読み取りはオーバーヘッドです。
変換されたコンテンツを任意のオブジェクトに読み取り、それを (実際にファイルに書き込むことなく) 反復処理する方法はありますか? ストリームか何かのように?
または:
SSIS "XML Task"には "Operation Type = XSLT" 機能がありますが、"SourceType" が変数で、変数にパスを含むファイル名を指定すると、XML を読み取れません。変数内の XML コンテンツが必要です。回避策はありますか?
コメントで具体的な詳細を尋ねてください。それに応じて更新できます。ありがとうございました。