問題タブ [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.
xslt - 他の言語の XSLT からの 2 つの概念: apply-templates と xpath
背景:プログラミング ツールキットの一部としての XSLT の実用的な日常使用をあきらめたので、XSLT について欠けている (唯一の) 2 つの点を他の言語で実装できるかどうか疑問に思っていました。
- xpath を介して「パス」スタイルのステートメントを使用してデータ構造をトラバースする機能
- 反復または「ループ」アプローチを介する代わりに、apply-templates を使用してテンプレート変換をトラバースする機能。
Google によると、Javascript に「xpath スタイル」のサポートを追加する取り組みがいくつか行われていますが、あまり普及していないようです。これまでのところ、誰かが別の言語で「apply-templates」アプローチを使用しているものは見つかりませんでした
質問: XSLT からこれら 2 つの優れたアイデアを盗んだり、別の方法を使用して同じまたは類似の概念を適用したりするプログラミング言語 (できれば主流の言語) を知っている人はいますか?
xslt - SOAP ヘッダーの追加 - ノードの更新 - ドキュメントのコピー
ドキュメントに Soap ヘッダーを追加し、最初の RS ノードを次のように更新しようとしています。
ドキュメントノードの残りをコピーしながらすべて。私の実際の例では、RS 親ノード内により多くのノードがあるため、ある種のディープ コピーを使用したソリューションを探しています。
チュートリアルを読んでいますが、テンプレートとそれらを実装する場所に頭を悩ませています。
xslt - XSLT: 条件付きパラメーターを使用してテンプレートを適用しますか?
条件の結果に基づいて、さまざまなパラメーターを持つテンプレートを適用したいと思います。このようなもの:
まず第一に、これははるかに良い方法で解決できると思います。(私は XSLT にまったく慣れていないので、改善を提案し、肥大化したコードを許してください。)
ここで質問です。この条件に基づいてパラメーターを設定し、それらを .xml ファイルで使用するにはどうすればよいxsl:apply-templates
でしょうか。xsl:choose
全体を開始/終了タグでラップしようとしましたxsl:apply-templates
が、それは明らかに合法ではありません。手がかりはありますか?
xslt - for-each で選択した各ノードにテンプレートを適用するにはどうすればよいですか?
私はここで何かが欠けていることを知っています。以下の XSLT 変換では、実際の結果は目的の結果と一致しません。
の中で、選択した各要素にテンプレートをfor-each
適用したいと思います。XSLT を正しく理解していれば、現在のセットアップでは、要素自体ではなく、選択された各要素の子ノードのみがテンプレートと照合されます。match="track"
track
track
track
track
要素が必要に応じてテンプレートを通過するようにするにはどうすればよいですか? アプローチ全体を再考する必要がありますか?
注: 変換は PHP を使用して実行されます。簡潔にするために、XML 宣言は省略されています。
XML ドキュメント:
XSL スタイルシート:
結果:
望ましい結果:
java - XSLT / Xalan : Java 拡張機能内から apply-templates を呼び出す
スタイルシートを拡張するために Xalan と Java を使用しています。
(私がそこでやっていることと同様の例:辞書の例)
タグに<xsl:apply-templates/>
. 私はこれをしたい:
メソッドを含む私のJavaクラスは、次のようにコンテキストに供給されるtag(XSLProcessorContext context, ElemExtensionCall elem)
要素を構築します:myElem
しかし、スタイルシートで定義されたテンプレートを のサブ要素に適用したいと考えていますmyElem
。
<xsl:apply-templates/>
Java クラス内で fromを起動するにはどうすればよいですか? 出来ますか ?
xslt - 最適化タグのセットの場合
この記録をどのように減らすことができますか?
xml - 呼び出しテンプレートの代わりに適用テンプレートと一致を使用する XSL
call-template の使用から appplay テンプレートと match の使用に移行しようとしていますが、ボランティア タグの間にあるものだけを表示するデータが得られません。
呼び出しテンプレートを使用すると正常に動作しますが、appplay-templates を使用して一致させることをお勧めしますが、動作しません
これを機能させる方法はありますか?その後、すべてのスタイルシートに適用できます。
そして私のxmlファイル
xslt - XSL 適用テンプレートが機能しない... XPath エラーの可能性があります
呼び出しテンプレートの代わりに適用テンプレートを使用するように mny スタイルシートを変換しましたが、より複雑な他のスタイルシートでは問題なく機能しましたが、これははるかに単純なテンプレートであっても機能しないようです。
出力されるのは、sex ノードと userlevel ノードだけです。それは私のXpathに関係していると思います。
私が望むのは、 < user > 情報を出力することだけです。他には何もありません
そして私のxmlのいくつか
xml - XSL: 別の XML 要素に基づいて apply-templates の選択を制限する方法
これが私がやろうとしていることの例です。XML:
XSL:
これは可能ですか?実際の xsl には、現在次のようなものがあります。
そして、xml 内の別の要素に基づいて、ANSWER の選択を制限する方法を見つけたいと考えています。うまくいけば、私はこれを明確に説明しました。そうでない場合はお知らせください。おそらく、このようなことを行うためのより良い方法があります。フィードバックや提案をお待ちしています。ありがとう。
xslt - 「apply-templates」を使用した XSL 名前付きパラメータ「with-param」
完全な説明の前にそれらを読みたい場合は、私の質問はこの投稿の最後にあります。
XSL を使用して XML ドキュメントをきれいな Web ページに変換していますが、変数を正しく渡すことができません。多くxsl:template
の が定義されており、そのうちの 1 つだけに特定のパラメーターを渡す必要があります。おそらくすべての に送信される名前付きパラメーターを渡すことができることを望んでいましたがxsl:template
、1つだけで使用され、他の人には無視されます。しかし、これを自分自身 (および XSL に関する私の限られた理解) でテストしようとすると、パラメーターをまったく渡すことができず、ましてや他xsl:template
の s を誤って妨害していないかどうかをテストすることもできませんでした。
以下は単純化されたコード例です (この質問のために入力したものです。1 つまたは 2 つのタイプミスが含まれている可能性があります)。xsl:template
XML のノードを処理するためにさまざまなが定義されており、今まではすべて正常に機能していました。私が問題を抱えているように見えるのは、これらのテンプレートにパラメーターを追加することです。
XML ファイル:
main.xsl:
test.xsl:
出力 (実際):
出力 (期待/望ましい):
これに関する私の質問:
with
xsl:template
を使用してすべての s に名前付きパラメーターを送信することは可能ですが 、実際のテンプレート内でこの値を具体的に選択して、単一のテンプレートで明示的に使用し、他のすべてのテンプレートで無視できるようにします (追加したい場合でも)後で他のテンプレート用の別の名前のパラメーター)?xsl:apply-templates
xsl:with-param
name=
パラメーターをまったく受け取っていないように見える現在のサンプル コードの何が間違っていますか?
これを達成するためのより良い方法はありますか?
編集:test.xsl
:testNode
テンプレート内の他の出力により、それが正常に呼び出されていることを確認していることを明確にしたいと思います。機能していないのはパラメーター部分のみです。そのテンプレートが呼び出されない理由を理解するために人々の時間を無駄にするつもりはありません。です。
更新:最初に受け取った回答に応えて、私が作成した例は完全に正しくなく (私の間違い)、問題を明確に示していなかった (つまり、正しいテンプレートが呼び出されているが、それはパラメータが機能していないようです)、例をより良いものに置き換えました。この例は、testNode
テンプレートが正常に呼び出されていることをより明確に示していますが、パラメーターは渡されていないようです。この質問に対する以前の回答を検討する前後に、これを何度もテストしました。私が他の場所で読んだことや人々がこれまでに提案したことからすべてが正しいように見えるので、私は完全に困惑しています.