問題タブ [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 に答える
475 参照

c# - スペースの保持 XmlCompiledTransform

私のxsltドキュメントから空白を保持しようとしています私のコードは

Xslt ドキュメント

XML ドキュメント

私の予想される出力は「Hello World」ですが、現在「HelloWorld」を取得しています。助けていただければ幸いです。

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

c# - msxml:script c# XslCompiledTransform を使用した xml フラグメント

こんにちは、私は次のスタイルシートを持っています

C#で次のスクリプトを使用

xml 値は次のとおりです。

ただし、変換を実行すると、次のエラーが返されます。

私の質問は、XslCompiledTransform クラスを使用した XML ツリーに制限はありますか? または、XPathNodeIterator を使用するとエラーが発生しますか?

前もって感謝します。

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

c# - XslCompiledTransform の使用時に属性間の XML 要素内の空白を保持する

次のクラスを使用して、XSL-T ファイルxsltUriを XML ファイルに適用しています。TargetXmlFileXslCompiledTransform

入力 XML:

入力 XSL:

実際の出力 XML:

必要な出力 XML:

質問:出力 XML ファイルの「要素」タグ内の入力 XML ファイルの空白 (特に改行) を保持するにはどうすればよいですか? さまざまなオプションを試しましたが、この場合は何も機能しませんでした。

ヒントをありがとう!

0 投票する
3 に答える
2079 参照

.net - XSLT パフォーマンスのベンチマーク

XSLT の 2 つのバージョンのベンチマークを試みています。現在、.NET コンポーネントから呼び出される xml 変換以降、Visual Studio を使用してデバッグしています。VS 2010 は、私が開発に使用する IDE です。

私が得る唯一の手がかりは、出力ウィンドウからのものです(以下は例です):

スタイルシートの読み込み時間: 656.2 ミリ秒
スタイルシートの JIT 時間: 11.18 ミリ秒
スタイルシートの実行時間: 177.8 ミリ秒

「スタイルシートの実行時間」に気を配る必要があるだけだと思いますが、これらの値が XSL の実際の機能を反映しているかどうかはわかりません。実行ごとに継続的に変化しているように見えるからです。

XSL をベンチマークする信頼できる方法があるかどうか知りたいです。.NET ランタイムを使用した XSL のベンチマークに関する実践的な経験があれば、役に立ちます。

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

c# - XslCompiledTransform はスタイルシートを読み込めません。トークン '}' が必要です

次の行を含む XML があります。

XslCompiledTransform.Load は、':' ではなく '}' を想定しています。

これを回避する方法はありますか?

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

c# - 「バージョン」を「変換」要素の子にすることはできません

XslCompiledTransform.Load を使用していますが、毎回エラー メッセージが表示されます。

これはスタイルシートです:

バージョンを削除すると、次のエラーが表示されます:必須属性「バージョン」 がありません タグ「変換」内でスタイルシートを使用しているため、エラーが発生しますか?

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

.net - XslCompiledTransform スレッド セーフ

.NET System.Xml.Xsl の MSDN。XslCompiledTransformクラスの状態:

スレッドセーフ

[1] XslCompiledTransform オブジェクトは、読み込まれるとスレッド セーフになります。つまり、Load メソッドが正常に完了した後、Transform メソッドを複数のスレッドから同時に呼び出すことができます。

[2]別のスレッドで Transform メソッドが呼び出されているときに、別のスレッドで Load メソッドが再度呼び出された場合、XslCompiledTransform オブジェクトは、古い状態を使用し続けることによって Transform 呼び出しの実行を終了します。Load メソッドが正常に完了すると、新しい状態が使用されます。

[3]注 Load メソッドは、複数のスレッドから同時に呼び出された場合、スレッド セーフではありません。

段落[1][2]が同じオブジェクト インスタンスで (複数のスレッドで)参照されているLoad()か、呼び出されていることを (かなり) 確信しています。しかし、[3]について、同じインスタンスでの同時実行を意味するのか、それともすべてのインスタンスから同時実行を相互に除外する必要があるのか​​ (それを意味する静的なものがある) を知っている人はいますか?Transform() XslCompiledTransformLoad()Load()

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

xslt-1.0 - XSLTCompiled 変換がテキスト ファイルの XSLT フォーマットを考慮しない

XSLT Compiled Transform を使用する場合、出力をフォーマットすることができません。常にすべてのスペースが取り除かれ、人間が判読できる形式ではありません。

ただし、Visual Studio XSLT Debugger を使用して同じ変換を実行すると、出力はきれいにインデントされます。私のコードは次のようになります。

変換によりテキスト ファイルが作成されますが、Visual Studio の XSLT Debugger は、出力の書式設定を保持するために何が異なるのでしょうか?

私はすでにこのリンクを見てきました: XSLT Transform not indenting correctly

テキストに出力するので、これは私には当てはまりません。Stream 以外のものを使用する必要がありますか?

私のサンプル XSLT :

期待される出力:

XSLT コンパイル済み変換を使用した出力: {Start:Value1value2End:}

Visual Studio XSLT デバッガーは予想される出力形式を提供しますが、XSLT Compiled 変換はすべてのスペースと改行を取り除きます。

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

c# - XslCompiledTransform は、CDATA 内の改行文字を置換せずに削除します

このデータを含むソース xml があります。

XslCompiledTransform を使用して、この xslt で変換しています。

したがって、Body フィールドはそのまま通過する必要があります。変換を実行する C# コードは次のとおりです。

この変換の結果は次のとおりです。

ご覧のとおり、CDATA と改行の両方が削除されています。この段階で CDATA を削除しても問題ありませんが、改行は保持する必要があります。NewLineHandlingとの設定をどのように組み合わせてNewLineChars使用​​しても (実際には、それらを完全に省略しても)、同じ結果が得られます。

私がしなければならないことは他にありますか?