問題タブ [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 複数のスタイルシート
私は次のxmlを持っています
呼び出しテンプレートを実行する XSLT がいくつかありますが、正しく繰り返されません。
これにより、4 つのレコードの代わりに 8 つのレコードが得られます(<s> level)
。私はそれが私の反復に関係していることを知っています...しかし、これに対処する方法がわかりません。
スタイルシートの適用についても認識していますが、その謎を解明することもできませんでした...レベルで m の値をチェックし、レベルでスタイルシートを適用することからすべてを処理するだけの XSLT で<TopLevel>
<\TopLevel>
<data>
<s>
<s>
誰かが私を助けることができれば私は信じられないほど素晴らしいものになるでしょう 。
xslt - xsl:apply-templates with params - フォーマットを保存する方法は?
XSLT は、テンプレート エンジンとして使用されます。パラメータを使用してデータを相互に転送するテンプレートの構造があります。
そのテンプレートを呼び出します:
この場合、html コンテンツのフォーマットはそのままで、出力は次のようになります。
しかし、match
or select
in <xsl:apply-templates>
(/result/page
の代わりに/
) を指定しようとすると、フォーマットが消去されます。パラメータpage-content
は同じです:
XML の例:
xslt - xsltで最初のノードのみを選択する方法
私の XML は、異なる mmid に割り当てられた複数の画像を提供します。
私の XSLT は、size=thumb の URL のみを選択します。
ただし、最初の mmid (この場合は 22404) のサムネイルのみが必要です。私は mmid 値を制御できません。
最初の mmid のサム ファイルのみを出力するようにテンプレートを停止するにはどうすればよいですか?
助けてくれてありがとう!
xml - XSLT の実際の XML タグ名に基づいて、apply-template 経由でアクセスされる要素を並べ替える
次のような XML があります。
次の XSLT を適用します。
私はこのような出力をしたい:
c のテキストは b のテキストの前にあることに注意してください
次のような xsl:sort を apply-templates に追加する必要があると思います。
<xsl:sort select='/root/section2/*[concat("#", @xml:id)=current()/@xlink:href][local-name()]' order="descending" /
>
すなわち:
しかし、うまくいきません。</p>
順序付けは xml:id に基づくことはできません。また、テキスト (つまり、 datac 、 datab など) に基づくこともできないことに注意してください。すなわち、)のみ。
select='/root/section2/*[concat("#", @xml:id)=current()/@xlink:href][local-name()]' の実際の値を理解しようとしましたか? したがって、パラメーターとしてテンプレートに送信しました。
そして驚くべきことに、各要素のテキスト (つまり、 b と c ではなく DataB と DataC ) であり、順序の種類 (降順) も適用されていない場合、それは要素の名前ではありませんでした。
次のような出力を得る方法を教えてください。
datac と datab は要素を介してのみアクセスできる必要があることに注意してください。これは、使用できないことを意味します
ありがとう、
xml - xsl:apply-imports を変数に適用しますか?
A.xsl は、A.xsl で使用される関数を含む B.xsl をインポートします。A.xsl には ID テンプレートが含まれています。B.xsl の関数は、テンプレート ルールを変数に適用する必要があります。ただし、A.xsl の ID テンプレートがそれらをオーバーライドしています。
私の考えではxsl:apply-imports
、B の変数を使用することでしたが、それとは異なり、変数を指すxsl:apply-templates
方法はありません。select=
元の関数をテンプレート ルールに置き換えることはできません。xsl:include
B.xslを実行せずにこれを行う方法はありますか?
A.xsl:
B.xsl: