問題タブ [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.

0 投票する
2 に答える
1041 参照

c# - XslCompiledTransform: ファイルに保存せずに、変換されたテキストを読み取る方法

入力: 私の入力ファイルは XML ファイルです。これらは、SSIS の foreach ファイル列挙子によって読み取られます。

プロセス: SSIS スクリプト コンポーネント (C#) は、変数からファイル名を読み取ります。XML を必要な形式に変換するための XSL ファイルを作成しました。スクリプト タスクは XSL ファイルを使用し、XML ファイルを (テキストに) 変換します。

使用したコードは次のとおりです。

問題:

予想どおり、これにより、変換されたテキスト コンテンツが前述の出力ファイルに書き込まれます。各行を読み込んで処理し、データベースにロードしたい。

さて、ファイルへの書き込み、再度の読み取りはオーバーヘッドです。

変換されたコンテンツを任意のオブジェクトに読み取り、それを (実際にファイルに書き込むことなく) 反復処理する方法はありますか? ストリームか何かのように?

または:

SSIS "XML Task"には "Operation Type = XSLT" 機能がありますが、"SourceType" が変数で、変数にパスを含むファイル名を指定すると、XML を読み取れません。変数内の XML コンテンツが必要です。回避策はありますか?

コメントで具体的な詳細を尋ねてください。それに応じて更新できます。ありがとうございました。

イメージに示すように、XML タスクの式を編集できませんここに画像の説明を入力

0 投票する
2 に答える
703 参照

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 倍以上遅くなります。

サクソン:

サクソン人

。ネット:

。ネット

0 投票する
1 に答える
547 参照

c# - ルート要素にxmlnsを含めるようにXslCompiledTransformを取得する方法は?

XslCompiledTransform C# クラスを使用して、ある xml ファイルを別の xml ファイルに変換しようとしています。ただし、xmlns 属性は転送されません。

私のコード:

XSLT:

入力:

これは実際の出力です:

これは望ましい出力です: