問題タブ [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 投票する
10 に答える
155279 参照

c# - StackOverflowException を防止および/または処理するにはどうすればよいですか?

私が書いている内のメソッドStackOverflowExceptionへの呼び出しから取得している を防止または処理したいと思います。問題は、ユーザーが無限に再帰的な を記述できるように思われ、メソッドの呼び出しで爆発するだけです。(つまり、問題は、通常、このような例外の原因である典型的なプログラム エラーだけではありません。)XslCompiledTransform.TransformXsl EditorXsl scriptTransform

許可される再帰の回数を検出および/または制限する方法はありますか? または、このコードが爆発しないようにするための他のアイデアはありますか?

0 投票する
5 に答える
3986 参照

c# - XslCompiledTransform.Load()はSystem.IO.FileNotFoundExceptionを発生させます

私のWebアプリケーション(ASP.NET 2.0)は、同じマシン上でWebサービス(1.1フレームワーク上のasmx)を使用します。代わりにXMLを取得した後、それをに渡して XslCompiledTransformXMLをHTMLに変換すると、正常に機能します。

昨日私はSystem.IO.FileNotFoundException頻繁に受け取りました、そして何がこの種の問題を引き起こすのか分かりません。

最初に見て、それはc:\ windows \ tempの読み取り/書き込み権限に関するものだと思い、次にネットワークサービス(最後に全員-_-!)の完全な権限を与えるようにしましたが、役に立ちません。

任意のアイデアや解決策をいただければ幸いです。

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

iis - XsltCompiledTransform を読み込んでいる StackOverflowException

XslCompiledTransform をロードするときに、古い (非推奨の) XslTransform が正常に動作しているときに、いくつかの大きな xslt クラッシュ iis (StackOverflowException) があります。大きなテンプレートに関する既知の問題はありますか? 奇妙なことに、同じ XslCompiledTransform が wi​​n32 アプリケーションで正常に読み込まれます。

0 投票する
4 に答える
2657 参照

c# - XslCompiledTransform と XslTransform の比較と、OOM を適切な手段として使用するにはどうすればよいでしょうか?

そのため、しばらくの間、XslCompiledTransform を使用してきました。これは、XslTransform が非推奨になったため、使用する必要があると Microsoft が指示したためです。最近、ほぼ 100,000 行 (生成された xsl - もちろん) の変換で使用する必要がありました。アプリケーションを使用したとき、OOM ポップアップが表示されてショックを受けました。私が何をしたとしても-OOMだけが私が得るすべてです...くすくす笑いのために、私はXslTransformに戻りました... XslCompiledTransformをXslTransformに変更する同じ正確なコードで、正常に動作します...

OOM を回避する方法を教えてもらえますか? XslCompiledTransform に「スイッチ」はありますか? 正確な問題をどのように再現できるかはわかりませんが、誰かが答えを持っていれば、彼らは大歓迎です.

ありがとう - 以下のコード:

作品:

OOM で失敗する

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

c# - C# での XslCompiledTransform のデバッグ

私は試してみましたが、(XslCompiledTransform.Load() メソッドに URI を渡すことによって) ディスクからスタイルシートをロードすることなく、XslCompiledTransform にステップインすることはできません。

XslCompiledTransform.Transform() メソッドにステップ インできるのは、前述のように URI を介してディスクからスタイルシートをロードした場合、または IXmlLineInfo インターフェイスを実装する XmlReader からスタイルシートをロードした場合のみであることを十分承知しています。

次のようにスタイルシートをロードしました。

これは、私が読んださまざまな文献から、デバッグを有効にする方法のようです。ただし、XslCompiledTransform.Transform() メソッドにステップインしようとすると、「現在の場所で使用できるソース コードがありません」というメッセージが表示されます。

前述のように、次の手順を実行すると、変換に入ることができます。

ディスクとの間で常に読み取りを行いたくないため、上記の方法は不可能です。


その有用なコメントをありがとう、私はマイクロソフトがこれを行ったことに気づいていませんでした.これは将来的に非常に役立つと確信しています.

しかし、私は自分の質問で自分自身を完全に明確にしていないと思います. xsl 変換で何が起こっているかを確認できるように、変換メソッドにステップインしたかったのです。渡すパラメーターによって、変換メソッドをデバッグできるかどうかが決まるため、load メソッドを強調しました (そうするには、IXmlLineInfo インターフェイスを実装する XmlReader を渡す必要があります)。

強調表示した手法を使用して変換メソッドにステップインすることはできますが、コードをステップ実行するだけです。コードを観察することで、変換で何が起こっているのかを突き止めることができたかもしれませんが、xsl デバッガーは、実際のスタイルシート自体を 1 行ずつ (変換の各行を実行するコードとは対照的に) ステップスルーして表示します。

0 投票する
5 に答える
7015 参照

.net - XslTransform と XslCompiledTransform の比較

XslTransform は、XslCompiledTransform を支持して Microsoft によって廃止されたようです。理論的には、アプリケーションの実行中に変換を 1 つだけ行っていた場合、XSLT を (XslTransform を介して) 解釈する方が、コンパイルするよりも高速ではないでしょうか? もしそうなら、XslCompiledTransform に加えられた改善がそれを補う以上のものであるほど、XslTransform はひどく書かれていますか?

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

xslt - XslCompiledTransformの最速のメモリ内キャッシュ

xsltスタイルシートファイルのセットがあります。XslConpiledTransformの最速のパフォーマンスを生成する必要があるため、これらのスタイルシートのメモリ内表現を作成したいと思います。

アプリケーションの起動時にIXpathNavigableとしてメモリ内コレクションにロードし、各要求で各IXPAthNavigableをシングルトンXslCompiledTransformにロードできます。ただし、これはxsl:importまたはxsl:includeのないstyleshhetsでのみ機能します。(Xsl:importはファイル専用です)。

また、テンプレートごとにXSLCompiledTransformの多くのインスタンスをキャッシュにロードできます。それは合理的ですか?

他の方法はありますか?一番良いのは何ですか?MS Xsltプロセッサのパフォーマンスを向上させるための別のヒントは何ですか?

0 投票する
12 に答える
22120 参照

.net - XSLT自動終了タグの問題

xsltを使用してxmlファイルをhtmlに変換しています。.net xsltエンジンは、空のタグの自動終了タグを提供し続けます。

例:

になります

前者は有効なhtmlですが、後者は違法なhtmlであり、レンダリングが不十分です。私の質問は、xsltエンジン(XslCompiledTransform)に自己終了タグを使用しないように指示するにはどうすればよいですか。

それが不可能な場合、ブラウザ(この場合はIE6 +)に自動終了タグを正しく解釈するように指示するにはどうすればよいですか。

0 投票する
4 に答える
13224 参照

c# - 文字列から XSL をロードする変換で XSL インクルードを解決する方法は?

.NET 2.0/VS2005

XslCompiledTransformクラスを使用して XSL 変換を実行しようとしています。2 つの XSL ファイルがあり、最初のファイルには<xsl:include>ステートメントの形式で他のファイルへの参照が含まれています。

Main.xsl:

ここで、「Main.xsl」ファイル自体を URI として読み込むことができれば、変換コードは次のように単純になります。

問題は、Main.xsl ファイルの内容を文字列として受け取り、その文字列をXmlReader/IXpathNavigable. これは現時点で必要な制限です。を使用して同じことをしようとするとXmlReader/XpathDocument、コードがフォルダー内の「Included.xsl」を検索するため失敗しC:\Program Files\Microsoft Visual Studio 8\Common7\IDE\ます! 明らかに、XmlResolverは入力 XSL として文字列を受け取るだけなので、相対 URL を解決できません。

この方向への私の取り組みは次のようになります。

ResolveUriXmlUrlResolverのメソッドを使用して、含める XSL ファイルの参照を取得しようとしましたStreamが、この Stream の使用方法について混乱しています。XslCompiledTransformIOW、 Main.xsl XmlReader に加えてこのストリームを使用するようにオブジェクトに指示するにはどうすればよいですか。


どんな助けでも大歓迎です。長文すみません!

参考までに、Exception StackTrace は次のようになります。