問題タブ [node-set]
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: テンプレートをツリー フラグメントに適用する
たとえば、変数 $NodeVariable を定義しました。
コードのさまざまな部分で、さまざまなテンプレートを myVariable に「適用」したいと考えています。残念ながら、これの構文はわかりません。
私は次のことを試しました:
これは機能しません。
ツリー フラグメントにテンプレートを適用する方法は?
xslt - XSLT 1.0 - node-set を抽出し、param として渡す
私はこの XML を与えられ、そこからかなりの部分をレンダリングする必要があり、ほとんどは正常に動作していますが、キーが要素の と一致し、属性がハードコードされた文字列であるノードセットを抽出しようとして踏みにじらcolor
れています (この場合、 )。node-set はパラメーターとしてテンプレートに渡され、各カラー ラインは 1 回だけ表示される必要があります。key
bar
'data'
私のXSLTファイルには、これがあります(抜粋):
問題は、これがノードセットではなくツリーフラグメントを渡すことです。上記と同じことを行うが、ノードセットを返す選択を行うことは可能ですか?
編集:
予想されるノードセット:
提示された XSLT がこの結果ツリーのフラグメントを生成するかどうかはわかりません (デバッグ目的で) 印刷する方法がわからないためです。
xml - ノードセットでの exslt str:replace の使用に関する問題
exslt 文字列置換関数を使用する場合、名前空間と思われる問題があります。ドキュメントhereに従って、exslt string replace 関数の nodeset 形式を使用して、ターゲット文字列内の複数の文字列を置き換えたいと思います。ただし、ノードセットの最初の文字列のみを置き換え、他の文字列は置き換えないようです。
これが私のファイルです:
出力は次のとおりです。
出力でわかるように。関数を使用すると、最初のノードの文字列のみが置き換えられます。2番目のものはそうではありません。ご覧のとおり、exslt.org からテンプレート コードをファイルにコピーしましたが、最初は、次のxmlns=""
ように str:replace テンプレートに追加するまで機能しませんでした。
その時点で、テンプレート フォームが機能するので、これは名前空間の問題だと思います。replace
関数でノードをソートし、次のように独自のノードを作成すると思います。
そのノードはおそらく別の名前空間で終了するため、後続のループはそれらに対処できません。xmlns
に属性を追加すると、str:replace
そこに作成されたすべてのノードが、渡すノードと同じ null 名前空間に配置され、機能します。ただし、何を試しても関数バージョンを機能させることができません。作成したファイルと xml ノードセットからすべての名前空間を削除しましたが、それでも機能しません。率直に言って、この名前空間のすべては、私にとって少し混乱を招きます。たぶん、それはまったく問題ではありません。
どんな助けでも大歓迎です、ありがとう!
xslt-1.0 - xsl ノードセットから削除
次のようなドキュメントがあるとします。
次に、xsl を使用して B ノードのノードセットを作成します
あなたは今これを持っています:
xsl 1.0 でこのノードセットから特定のノードのセットを削除するために受け入れられている方法は何ですか? たとえば、「1」または「2」のいずれかである C を持つ B のみが必要で、このような「3」ではありませんか?
xsl でこれを行うにはどうすればよいでしょうか。より排他的なセレクター r を使用して、ノードセットを宣言した後にノードセットから削除できますか (つまり、動的な Java Arraylist ですか)?
java - Java でノードセットを変更するためのカスタム XPath 関数の作成
ノード セット内のテキスト ノードを変更するカスタム XPath 関数を Java で作成しています。ノード セットを渡し、コードをすべてのノードにループさせ、ノード セットを返す必要があります。文字列を変更するカスタム XPath 関数の例を数多く見てきましたが、ノード セットを取り込んでノード セットを正常に返す例はありません。また、返されるノードセットをマップする方法もわかりません。
たとえば、このソース XML を取り上げます。
次に、これをターゲット XML にしたいと考えています。各単語の最初の文字を大文字にすることにしましたが、これは単なる例です。テキストの変更部分については心配しないでください。
ここで最も重要なことは、これを Java を使用してカスタム XPath 関数として実装し、デザイナー モードでドラッグ アンド ドロップできるようにすることです。そして、この変換の両側でファイル アダプターを使用しているため、すべてのノードの構造は既に与えられており、結果を適合させる必要があります。
xslt - ノードセットの長さが 1 より大きい場合、ノードセットからノードを削除します
私は次のようなxmlを持っています
名前が「XYZ」である場所も存在する場合にのみ、名前が「ABC」である場所を削除する必要があります(または名前が「ABC」である場所がノードセット内の唯一の要素ではありません)
私が準備したxsltは次のようなものです:
これはうまくいかないようです。ここで私が間違っているのは何ですか。