問題タブ [apply-templates]

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 投票する
5 に答える
525 参照

xslt - 他の言語の XSLT からの 2 つの概念: apply-templates と xpath

背景:プログラミング ツールキットの一部としての XSLT の実用的な日常使用をあきらめたので、XSLT について欠けている (唯一の) 2 つの点を他の言語で実装できるかどうか疑問に思っていました。

  • xpath を介して「パス」スタイルのステートメントを使用してデータ構造をトラバースする機能
  • 反復または「ループ」アプローチを介する代わりに、apply-templates を使用してテンプレート変換をトラバースする機能。

Google によると、Javascript に「xpath スタイル」のサポートを追加する取り組みがいくつか行われていますが、あまり普及していないようです。これまでのところ、誰かが別の言語で「apply-templates」アプローチを使用しているものは見つかりませんでした

質問: XSLT からこれら 2 つの優れたアイデアを盗んだり、別の方法を使用して同じまたは類似の概念を適用したりするプログラミング言語 (できれば主流の言語) を知っている人はいますか?

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

xslt - SOAP ヘッダーの追加 - ノードの更新 - ドキュメントのコピー

ドキュメントに Soap ヘッダーを追加し、最初の RS ノードを次のように更新しようとしています。

ドキュメントノードの残りをコピーしながらすべて。私の実際の例では、RS 親ノード内により多くのノードがあるため、ある種のディープ コピーを使用したソリューションを探しています。

チュートリアルを読んでいますが、テンプレートとそれらを実装する場所に頭を悩ませています。

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

xslt - XSLT: 条件付きパラメーターを使用してテンプレートを適用しますか?

条件の結果に基づいて、さまざまなパラメーターを持つテンプレートを適用したいと思います。このようなもの:

まず第一に、これははるかに良い方法で解決できると思います。(私は XSLT にまったく慣れていないので、改善を提案し、肥大化したコードを許してください。)

ここで質問です。この条件に基づいてパラメーターを設定し、それらを .xml ファイルで使用するにはどうすればよいxsl:apply-templatesでしょうか。xsl:choose全体を開始/終了タグでラップしようとしましたxsl:apply-templatesが、それは明らかに合法ではありません。手がかりはありますか?

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

xslt - for-each で選択した各ノードにテンプレートを適用するにはどうすればよいですか?

私はここで何かが欠けていることを知っています。以下の XSLT 変換では、実際の結果は目的の結果と一致しません。

の中で、選択した各要素にテンプレートをfor-each適用したいと思います。XSLT を正しく理解していれば、現在のセットアップでは、要素自体ではなく、選択された各要素の子ノードのみがテンプレートと照合されます。match="track"tracktracktrack

track要素が必要に応じてテンプレートを通過するようにするにはどうすればよいですか? アプローチ全体を再考する必要がありますか?

注: 変換は PHP を使用して実行されます。簡潔にするために、XML 宣言は省略されています。

XML ドキュメント:

XSL スタイルシート:

結果:

望ましい結果:

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

java - XSLT / Xalan : Java 拡張機能内から apply-templates を呼び出す

スタイルシートを拡張するために Xalan と Java を使用しています。

(私がそこでやっていることと同様の例:辞書の例

タグに<xsl:apply-templates/>. 私はこれをしたい:

メソッドを含む私のJavaクラスは、次のようにコンテキストに供給されるtag(XSLProcessorContext context, ElemExtensionCall elem)要素を構築します:myElem

しかし、スタイルシートで定義されたテンプレートを のサブ要素に適用したいと考えていますmyElem

<xsl:apply-templates/>Java クラス内で fromを起動するにはどうすればよいですか? 出来ますか ?

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

xslt - 最適化タグのセットの場合

この記録をどのように減らすことができますか?

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

xml - 呼び出しテンプレートの代わりに適用テンプレートと一致を使用する XSL

call-template の使用から appplay テンプレートと match の使用に移行しようとしていますが、ボランティア タグの間にあるものだけを表示するデータが得られません。

呼び出しテンプレートを使用すると正常に動作しますが、appplay-templates を使用して一致させることをお勧めしますが、動作しません

これを機能させる方法はありますか?その後、すべてのスタイルシートに適用できます。

そして私のxmlファイル

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

xslt - XSL 適用テンプレートが機能しない... XPath エラーの可能性があります

呼び出しテンプレートの代わりに適用テンプレートを使用するように mny スタイルシートを変換しましたが、より複雑な他のスタイルシートでは問題なく機能しましたが、これははるかに単純なテンプレートであっても機能しないようです。

出力されるのは、sex ノードと userlevel ノードだけです。それは私のXpathに関係していると思います。

私が望むのは、 < user > 情報を出力することだけです。他には何もありません

そして私のxmlのいくつか

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

xml - XSL: 別の XML 要素に基づいて apply-templates の選択を制限する方法

これが私がやろうとしていることの例です。XML:

XSL:

これは可能ですか?実際の xsl には、現在次のようなものがあります。

そして、xml 内の別の要素に基づいて、ANSWER の選択を制限する方法を見つけたいと考えています。うまくいけば、私はこれを明確に説明しました。そうでない場合はお知らせください。おそらく、このようなことを行うためのより良い方法があります。フィードバックや提案をお待ちしています。ありがとう。

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

xslt - 「apply-templates」を使用した XSL 名前付きパラメータ「with-param」

完全な説明の前にそれらを読みたい場合は、私の質問はこの投稿の最後にあります。

XSL を使用して XML ドキュメントをきれいな Web ページに変換していますが、変数を正しく渡すことができません。多くxsl:templateの が定義されており、そのうちの 1 つだけに特定のパラメーターを渡す必要があります。おそらくすべての に送信される名前付きパラメーターを渡すことができることを望んでいましたがxsl:template、1つだけで使用され、他の人には無視されます。しかし、これを自分自身 (および XSL に関する私の限られた理解) でテストしようとすると、パラメーターをまったく渡すことができず、ましてや他xsl:templateの s を誤って妨害していないかどうかをテストすることもできませんでした。

以下は単純化されたコード例です (この質問のために入力したものです。1 つまたは 2 つのタイプミスが含まれている可能性があります)。xsl:templateXML のノードを処理するためにさまざまなが定義されており、今まではすべて正常に機能していました。私が問題を抱えているように見えるのは、これらのテンプレートにパラメーターを追加することです。

XML ファイル:

main.xsl:

test.xsl:

出力 (実際):

出力 (期待/望ましい):


これに関する私の質問:

  1. with xsl:templateを使用してすべての s に名前付きパラメーターを送信することは可能ですが 、実際のテンプレート内でこの値を具体的に選択して、単一のテンプレートで明示的に使用し、他のすべてのテンプレートで無視できるようにします (追加したい場合でも)後で他のテンプレート用の別の名前のパラメーター)?xsl:apply-templatesxsl:with-paramname=

  2. パラメーターをまったく受け取っていないように見える現在のサンプル コードの何が間違っていますか?

  3. これを達成するためのより良い方法はありますか?

編集:test.xsl :testNodeテンプレート内の他の出力により、それが正常に呼び出されていることを確認していることを明確にしたいと思います。機能していないのはパラメーター部分のみです。そのテンプレートが呼び出されない理由を理解するために人々の時間を無駄にするつもりはありません。です。

更新:最初に受け取った回答に応えて、私が作成した例は完全に正しくなく (私の間違い)、問題を明確に示していなかった (つまり、正しいテンプレート呼び出されているが、それパラメータが機能していないようです)、例をより良いものに置き換えました。この例は、testNodeテンプレートが正常に呼び出されていることをより明確に示していますが、パラメーターは渡されていないようです。この質問に対する以前の回答を検討する前後に、これを何度もテストしました。私が他の場所で読んだことや人々がこれまでに提案したことからすべてが正しいように見えるので、私は完全に困惑しています.