問題タブ [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# - 編集が必要なときにXmlDocumentまたはXPathDocumentを使用するC#XslCompiledTransform?
ここでは、いくつかの仮定を行います。
- XPathDocumentは編集できません。
- XmlDocumentは編集可能です。
- XPathDocumentは、XslCompiledTransformに対してより効率的です。
その場合(そして私が間違っている場合は私を訂正してください)、次の方が良い(より効率的)でしょうか?
- XmlDocumentを使用して変更を加え、変換前にXPathDocumentに変換します。これを行うための最適化された方法はありますか?
- 変換を通じてXmlDocumentに固執するだけです。
背景として、Webサービスから複雑なxmlを取得し、xpathを使用して変更が必要な要素を見つけ、xsltを使用してhtmlを作成します。
助けてくれてありがとう。
c# - .NET Xsl スクリプト変換により、'System.Object' が定義されていないか、インポートされていません
XSL初心者ですが、完全に立ち往生しています!
C#スクリプト関数を使用して日付をフォーマットする変換があります.VS 2008で「show xml output」を実行すると、これはうまく機能します.出力はまさに私が望むものです.
ただし、コードを使用してこれを実行しようとすると、エラーが発生します
定義済みの型 'System.Object' が定義されていないか、インポートされていません
変換を呼び出す関数は次のようになります。これは非常に基本的なものであり、スクリプトを使用する前に機能していました。
XSL 変換はこれです。
.net - メソッド名のハイフンは、どの .NET 言語でも可能ですか?
XSLT 変換で使用される拡張関数として「send-request」という名前のメソッドをサポートする必要があります。これは、 の拡張オブジェクトによって提供されますXslCompiledTransform
。拡張オブジェクトと比較して優れている点は、名前空間を宣言して関数を呼び出すだけで、<msxsl:script>
を使用する必要がないことです。<msxsl:script>
悪い点は、関数名が CIL メソッド名と正確に一致する必要があることです。
メソッド名でハイフンをサポートする .NET 言語はありますか? CLS 準拠は必須ではありません。メソッドはリフレクションを使用して呼び出されます。
または、アセンブリの IL を変更してメソッド名を変更する手法を使用できますか?
または、リフレクションGetMethod
呼び出しを傍受し、メソッド「send-request」が存在することを呼び出し元をだまして、代わりに「SendRequest」メソッドを返す方法はありますか?
c# - XmlCompiledTransform を使用して 2 つの XPathDocument をマージする
XSLT を使用して 2 つのドキュメントをマージすることは、非常に一般的な方法のようです。ただし、古いインターウェブで例を 1 つも見つけられないようです。
SQL Server から XML の文字列として取得される 2 つの XML ドキュメントがあります。XslCompiledTransform
2つのドキュメントをマージするために使用したい。デフォルトで XSL 関数XslCompiledTransform
がオフになっていることはわかっています。オブジェクトを作成するときにdocument()
使用してオンにしました。XsltSettings
XslCompiledTransform
2 番目のドキュメントを変換に「追加」する方法についての私の理解はXsltArgumentList
、メソッドを使用してオブジェクトAddParam()
を追加することです。XPathNavigator
ただし、追加されたドキュメントにアクセスしようとすると、エラーが発生するか、何も返されません。— C#:
XSLT - 変換で読み込まれたドキュメントではなく、追加されたドキュメントにのみアクセスします。
XML
明らかな何かが欠けていることはわかっていますが、イライラすることはありません。ドキュメントがパラメーターとして追加されることは知っていますが、パラメーターとして読み込まれたドキュメントにアクセスする方法の例が見つかりません。
どんな助けでも大歓迎です。上記のコードは進行中の作業であり、それを機能させるための数百回の試行の間にあることに注意してください。
asp.net - ASP.NET経由でxslファイルからxsl:output media-type値を取得する方法
メディア タイプの値を取得する方法はありますか? たとえば、xsl:output メソッドを取得するために使用される OutputSettings.OutputMethod のように。
xml - How to migrate from XslTransform to XslCompiledTransform
I have the following code that I need to migrate from VS 2003 (.Net 1.1) to VS 2008 (.Net 2+) but I get compilation error -
System.Xml.Xsl.XslTransform' is obsolete: This class has been deprecated. I probably need to use System.Xml.Xsl.XslCompiledTransform instead. but I do not find the matching Load() and Transform() overload versions that I can use with all the parameters of my original code.
in MSDN [How to: Migrate Your XslTransform Code] I only found some simpler cases. http://msdn.microsoft.com/en-us/library/aa983475%28VS.80%29.aspx but in my code I see some remarks that hints that the added parameters were used to avoid exceptions, so I prefer to use these parameters.
Can someone please help migrating this code?
Thanks, Atara
in my old code I have both xmlDoc and xslDoc, so the compiled code I have now (not tested yet) is:
' ----------------------------------------------------------------------
' VS 2008 trial code:
' ----------------------------------------------------------------------
.net - xsl:when 条件が多い XSLT で XslCompiledTransform が失敗する
私は ASP.Net 1.1 アプリケーションを .Net 3.5 にアップグレードする過程にあり、行った変更の 1 つは、XslTransform ではなく XslCompiledTransform を使用することです。新しいメソッドを使用して失敗した XSLT を見つけたとき、すべてがうまくいっていることを確認するためにいくつかのテスト XSLT を実行していました。
少し調査した結果、XSLT に 435 条件の巨大な xsl:choose ステートメントがあることがわかりました。以下にサンプルを示します。
……念のため省略……
上記の xsl:choose をコメント アウトすると変換が機能しますが、そのままにしておくと現在 IIS アプリケーション プールがクラッシュしており、唯一の解決策はアプリケーション プールを再起動することです。
435 条件の select ステートメントはさまざまな理由から (私はこのコードを継承したので、私に反抗しないでください) 良いアイデアではないことに気付きました。別の方法でこの特定の問題を解決することを考えていますが、これが以前は XslTransform を使用して機能していたのに、XslCompiledTransform では機能しなかった理由に興味があります。特に注意する必要があるものはありますか、それともこの非常に大きな choose ステートメントは 1 回限りのものですか。
c# - XslCompiledTransformのXMLサイズ制限
XslCompiledTransform
.NET(3.5)でXSLTが適用されるXMLサイズに制限はありますか?また、XSLTに渡されるパラメーターの長さに制限はありますか?
更新:パラメーターの量ではなく、パラメーターとして渡される文字列の長さと、XSLTが適用されるXMLテキストの長さを意味しました。
c# - XslCompiledTransform の出力を XmlReader に取得する方法は?
オブジェクトがあり、2 番目のスタイルシートを介して渡す必要があるためXslCompiledTransform
、オブジェクトで出力したいと考えています。XmlReader
少し混乱しています。XML を正常に変換して、StreamReader
またはを使用して読み取ることができますXmlDocument
が、 を試してXmlReader
も何も得られません。
以下の例では、stylesheet
は私のXslCompiledTransform
オブジェクトです。最初の 2 つのConsole.WriteLine
呼び出しでは正しい変換済み XML が出力されますが、3 番目の呼び出しでは XML が返されません。がテキストを期待しているのではないかと推測しているXmlTextReader
ので、これを StreamReader でラップする必要があるかもしれません..? 私は何を間違っていますか?
c# - XElement と XslCompiledTransform の問題
と の組み合わせの使用に問題がXElement
ありXslCompiledTransform
ます。私が使用しているサンプルコードを以下に置きます。GetXmlDocumentXml()
メソッドを使用して入力 XML を取得すると、問題なく動作します。GetXElementXml()
代わりにメソッドを使用すると、次のメソッドをInvalidOperationException
呼び出すときに次のようになります。Transform
XslComiledTransform
Start 状態のトークン テキストは、無効な XML ドキュメントになります。XML フラグメントを作成する場合は、ConformanceLevel 設定が ConformanceLevel.Fragment または ConformanceLevel.Auto に設定されていることを確認してください。
と の両方のCreateNavigator
メソッドはXElement
をXmlDocument
返しますXPathNavigator
。XmlDocument
これがすべて機能するように、どのような追加機能が行われていXElement
ますか? 私は非常識なことをしているだけですか?