問題タブ [xslcompiledtransform]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - XslCompiledTransform: ファイルに保存せずに、変換されたテキストを読み取る方法
入力: 私の入力ファイルは XML ファイルです。これらは、SSIS の foreach ファイル列挙子によって読み取られます。
プロセス: SSIS スクリプト コンポーネント (C#) は、変数からファイル名を読み取ります。XML を必要な形式に変換するための XSL ファイルを作成しました。スクリプト タスクは XSL ファイルを使用し、XML ファイルを (テキストに) 変換します。
使用したコードは次のとおりです。
問題:
予想どおり、これにより、変換されたテキスト コンテンツが前述の出力ファイルに書き込まれます。各行を読み込んで処理し、データベースにロードしたい。
さて、ファイルへの書き込み、再度の読み取りはオーバーヘッドです。
変換されたコンテンツを任意のオブジェクトに読み取り、それを (実際にファイルに書き込むことなく) 反復処理する方法はありますか? ストリームか何かのように?
または:
SSIS "XML Task"には "Operation Type = XSLT" 機能がありますが、"SourceType" が変数で、変数にパスを含むファイル名を指定すると、XML を読み取れません。変数内の XML コンテンツが必要です。回避策はありますか?
コメントで具体的な詳細を尋ねてください。それに応じて更新できます。ありがとうございました。
c# - C# Parallel.ForEach XslCompiledTransform と Saxon 9.7.0.6 HE
XPath 2.0/XSLT 2.0 のため、XslCompiledTransform を Saxon 9.7.0.6 HE に移行したかったのですが、.NET よりもかなり遅いです。
デフォルトの copy ident XSLT と 15.000 xml ファイルを使用して各バージョンをテストしました。
XslCompiledTransform: 何か間違っていることを願っています。
サクソン版:
アップデート
Visual Studio のデバッグなしで別のテストを行ったところ、大幅に改善されました。
そのため、主な速度低下はデバッガー自体にありましたが、Saxon のみでした。今では .NET バージョンの 2 倍の時間しかかからず、それほど素晴らしいものではありませんが、それでいいと思います。
Saxon を高速化するためにできることはありますか? コードで遊んだり、HE の代わりに EE を使用したりしますか?
ここにいくつかの詳細なベンチマーク情報があります。主なパフォーマンスの問題は DocumentBuilder.Build メソッドです。ただし、変換自体でさえ、.NET バージョンの 2 倍以上遅くなります。
サクソン:
。ネット:
c# - ルート要素にxmlnsを含めるようにXslCompiledTransformを取得する方法は?
XslCompiledTransform C# クラスを使用して、ある xml ファイルを別の xml ファイルに変換しようとしています。ただし、xmlns 属性は転送されません。
私のコード:
XSLT:
入力:
これは実際の出力です:
これは望ましい出力です: