問題タブ [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 があり、GENRE_1 と GENRE_3 およびその他の書籍 ID のみを含む出力を生成しようとしています。これは、GENRE_4、5、および 6 が取り除かれることを意味します。サンプル xslt を使用してみましたが、うまくいきません。どんな助けにも感謝します。
期待される出力
xml - 共有プロパティ/値に基づいて 2 つの個別のノードグループを出力する
まず、私は XPATH があまり得意ではありません。それが、皆さんに支援を求める主な理由です。
それで、私は今日、ID を共有する両方に基づいて、XML ファイルからのデータを「グループ化」しようとしていたのです。私は友人の助けを借りてこれを行うことができましたが、かなり長くなってしまいました。もっと簡単でクリーンな方法があるに違いないと確信しています。以下は、私が使用した XML、XSLT、および目的の出力です。
私が使用したXSLT:
上記の例では、それぞれDudeが単一のバスケットを持つことができ、バスケットにはcustomerID、バスケットの所有者を識別するために接続された があります。両方のノードが互いに同じ深さであると仮定します。<apply-templates/>で xpath を使用して、次の結果を生成するにはどうすればよいですか。
ps。実際の出力についてはあまり心配する必要はありません。XML ツリーをたどる適切な方法を知りたいだけです。apply-templates
編集:私が使用したXSLTを忘れました...今私が混乱しているのは、これがこれを行う最良の方法ですか? 2つの別々の試合で。また、述語の内部では、述語が必要ですか、../または述語は、一致した場所から開始していると想定していますか。Dude
html - xslt apply-templates は、渡された値以外のすべてを削除します
テンプレートを使用XSLTして、コール センターに送信される電子メールを生成しています。私が抱えている問題 - 変換apply-templatesにより、値以外のすべてが排除されます。これは、私が見落としている些細なことである可能性があります。
XSLT:
XML:
私が得ている結果:
どうすればhtmlタグを保持できますか?
xslt - Muenchian メソッドを使用して追加の for-each または apply-template を使用する XSLT?
私は XSLT の学習を開始し、演習で Muenchian メソッドを使用しました。期待される結果を得る 2 つの異なる方法を見つけました。とapply-templatesおまけ付きfor-each。
キー:
apply-templates を使用した最初のソリューション:
追加の for-each を使用する 2 番目のソリューション:
入力は次のようなものです。
これら2つの特定のソリューションを使用する方が良いですか? または、これらのうちどれをお勧めしますか?その理由は?
xslt - XSL apply-template の出力の問題
この XML を考えると:
この XSL では:
この出力を持つ:
Q : 値が合わなかった人の値が存在するのはなぜですか?
20, Honey, 9999, ...
xml - テンプレートを XSLT の部分文字列に適用する
XML ファイルが次のようになっているとします。
次のコードは機能しません。
次の出力が期待されます。
substring(test,1,50)をtestに置き換えると機能しますが、最初の 50 文字だけが必要です。
私はまた、この方法で変数を使用しようとしました:
しかし、これでも機能します。
問題はsubstring()式にあるようです。いくつかのアドバイス?
xslt - apply-templates がコンテンツを予想よりも多く出力する
私は XSLT に不慣れで、なぜルートが 2 回処理されるのか理解できません (少なくとも、これはこの出力に対する私の解釈です)。
編集:(私は XSLT 2.0 で Saxon-HE を使用しています)、いくつかのオンライン プロセスでテストされ、常に同じ結果が得られました。
XSLT ファイル
XML ファイル
HTML出力
(はい、その量の空白行で)
出力header divは完全に問題ありませんが、その内部sections divではすべての情報が再びapply-templatesレンダリングされますが、HTML タグは含まれていません。div header
不足している XSLT 処理の詳細はありますか? テンプレートの一致は、一致した要素がルートまたはそのようなものと見なされるようにコンテキストを設定しますか?
xml - グループ化後の XSLT 1.0 条件付きマージ
私の入力xmlは次のようになります。
'item' ノードをグループ化するためのキーは concat(/items/item/key/id,/items/item/key/color) です。特定されたグループごとに、以下に示すロジックでマージを行う必要があります。
a. その他/詳細が「geo」である「item」から「geoDetails」を抽出します。
b. その他/詳細が「その他」である「アイテム」から「その他の詳細」を抽出します。「geo」または「other」のいずれかの値を持つ各「item」には、1 つのその他/詳細のみが存在します。
c. 特定のグループの最初の「アイテム」から「キー」要素を抽出します。
d. 「misc」要素には「available」要素がそのまま含まれている必要があり (これは常に「false」であるため、これを 1 回入力するだけで十分です)、「details」要素には要素「geoDetails」または「otherDetails」に基づいた値が入力されている必要があります。上記の手順 a および b で指定されたロジックを介して。「geoDetails」と「otherDetails」の両方が設定されている場合、2 つの「details」要素が必要です。
e. グループの一部ではない他の単一の「アイテム」要素は、そのまま出力にプッシュする必要があります。
そして、上記のロジックに基づく予想される出力は次のとおりです。
xsl:key と apply-templates を使用して Muenchian グループ化に基づく変換を試みました。「アイテム」要素をグループ化することはできましたが、上記の一連の条件に基づいてこれらのグループ化された要素をマージする方法についてこれ以上進めることができませんでした。
XSLT 変換:
Stackoverflow に関するいくつかの関連する質問を調べましたが、マージ プロセスを現在のシナリオに適応させることができませんでした。どんな助けでも大歓迎です。