問題タブ [xslkey]

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

xml - XPath は XML の 2 つのサブツリーにわたって外部キー検索を実行できますか?

次の XML があるとします...

...「バケット」に「赤」と「青」が含まれていることを返す XPath は何でしょうか?

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

xslt - XSLT 外部参照テーブルの正しい使い方 - key() 関数?

xsl:key および key() 関数のチュートリアルを検索して見つけましたが、どういうわけかまだ理解が足りないようです。

実行する必要がある XML-XML 変換があります。これには、ソース XML から文字列値を取得し、(提供された) 適切なルックアップ テーブルから適切な数値コードを見つけ、それらのコードを結果の XML に配置する必要がある 10 個のフィールドが含まれます。

ルックアップテーブルに対して xsl:for-each を実行するこれの作業バージョンがありますが、最適ではないのではないかと考えており、代わりに select="key('CR-Lookup',$CR)" を使用する必要があったかどうかを知りたいです。 .

だから、私がやりたいことは(ツリーの深い部分)です:

次のようなものに変換されます。

私が作成したファイルは次のようになります。

ルックアップ テーブル ファイルlookup_ContributorRole.xml :

Amd のXSLT ファイルで、照合を試みます。

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

xslt - xsl:key() 内の xsl:key() のネスト & xsl:key() の結果の結合

関係のない質問が 2 つあります。XSLT を使用してデータをグループ化する必要があります。ネストさIFれたIFがどのように機能するかのように機能するには、これが必要です。その後、グループ条件に従って複数のファイルに分割できるように、データをグループ化する必要があります。

XSLT バージョン 1.0 の使用:

Q1) どのようkey()に別のノードをネストしますかkey()(つまり、最初から返された結果ノードを現在のノード リストとして使用して、2 番目の条件をkey()検索してデータをグループ化します)。key()

Q2) 2 つのkey()関数の結果を結合できますか? たとえば、「A」と「B」のキー値を持つすべてのノードに対してコードを実行したいとします。

Q1とQ2の解き方わかる人いますか?

あなたの助けに感謝します!質問が十分に明確であることを願っています。入力と出力の例が必要な場合はお知らせください。

よろしく、メリタ。

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

xslt - XSL:Key を使用した特定の子孫ノードの検索

次のコードがあるとします。

特定のテーブルに名前で特定の列がある場合、xsl:key を使用してテストできるようにしたいと考えています。たとえば、テーブルに「created_at」列があるかどうかを知りたいので、変換内に特定のコードを記述できます。

テーブルに名前で指定された列があるかどうをテストする一般的なキーを取得しましたが、変換が現在処理されているテーブルに固有のものにする方法がわかりません。

したがって、すべてのテーブルで「true」になります。任意のガイダンスをいただければ幸いです。

0 投票する
5 に答える
6206 参照

xslt - XSLT で個別のアイテムをカウントし、1 回だけリストする

次の XML があります。

その XML を処理するための次の XSLT があります。

それは次のように出力します。これはほとんど私が望むものです:

それぞれの variable_names と、それぞれの発生回数がリストされます。唯一の問題は、変数名が 1 回だけではなく発生するたびに、このカウントが 1 回与えられることです。

これは私が出力したいものです:

XSLTコードを変更してそれを得るにはどうすればよいですか? XSLT 1.0 を使用していることに注意してください。

うまくいくように見える次のソリューションは、何も出力しません。

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

xslt - xsl:key キーに 2 つの要素を使用する

次のような XML ファイルがある場合は、次のようになります。

次のように、XSL ファイルでキーを定義できます。

id をキーとして使用しています。ただし、ドナルドは2回記載されていますが、プレグでは1か所しかありません。

彼をpregに2回リストしたいとします。つまり、クラス名を識別子の一部にしたいのです。基本的に、preg には順序付けられたペア (class-name, id) と同等のキーが必要です。どうすればいいですか (XSLT 1.0 を使用)。

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

xslt - XSLT 1.0 の xsl:key の xsl:for-each での反復変数の名前

次のような XSLT 1.0 コードがあります。

私が理解しているように、キーは特定の要素に対して複数の値を格納できます。上記のコードは、 を参照するときに最初の値しか取得していないと思いますkey('enemyItems', @key)

だから、私はこのように、xsl:for-each でそのコードをラップしたい

私の質問は: ??? には何が入りますか? 部?(つまり、反復変数またはものの名前は何ですか?)

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

xml - xsl:key を使用して一致した子から属性を見つける

XSL にはかなり新しいので、初心者であることをお許しください。

入力 XML ドキュメントがあります (これは実際にはJargon Fileの docbook 形式で、大幅に省略されています):

これは、私が取り組んできたテスト用 XSL です。

私の目的は、要素に出くわすたびに、指定された<glossterm>を検索したいということです。たとえば、 を見つけたら、を取得したいと思います。glossentry/@idglossterm/text()<glossterm>/dev/null</glossterm>dev-null

私はglossdefのglosstermsにのみ本当に興味がありますが、私はすべてのもののために作業中のxsl:templatesを持っています - テストのために、私はちょうどすべてのglosstermsに取り組んできました.

別のルックアップ ドキュメントを作成し、 XML.com: Reading Multiple Input Documentsで説明されているアプローチを使用しようとしましたが、うまくいきませんでした。

ヒントはありますか?

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

xml - さまざまなノードと要素の XSLT 1.0 グループ化キー

Muenchian Grouping を見ています。私のxmlに似た例を見つけようとしましたが、見つかりませんでした。ほとんどの例は適切に構造化されていますが、私のものは混乱しています。

これは私の XML の短縮バージョンです (XML 構造は標準的なものであり、私の手に負えないため、変更できないことに注意してください)。システムは現在そのバージョンのみをサポートしているため、XSLT 1 を使用しています。

私が望む出力は次のとおりです。

現在、id 属性は、参照要素の値として使用されています。また、出力のタグは、作成者、連絡先、または関連するパーティ要素の下にある場合、要素内にあるものであれば何でもかまいません。

id/references 属性からそれらをグループ化するためのキーの作成に行き詰まっています。私が見る限り、 xsl:key を使用した例は同じ名前のノードのみを対象としており、投稿した例ではノード名が異なります。どんな助けでも大歓迎です!!!!

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

xslt - 複数の値を使用する XSL キー

以下は、私が取り組んでいるサンプルの XML 構造です。

XSL ファイルのコード スニペットは次のとおりです。

変数「portid」の形式は「x:x」です。ここで、x は数字です。ポート ID ごとに、値を関連付ける必要があり<parameter index="2">ます。<add>以前は、ノードの下に 1 つの portid 値しかなく、ソリューションは正常に機能していました。

ここで、値が「1:1」から「1:1」に、同様に「3:1」から「3:1」に変更されるように、XSL キー「ポート」の「use」式を変更する必要があります。 ' '3:9-12' を '3:9' 、 '3:10' 、 '3:11' 、 '3:12' に展開し、値とともに に保存します<parameter index="2">。たとえば、「portid」が「1:1」、「3:1」、「3:9」、「3:10」、「3:11」、「3:12」のいずれかであるたびに、 「4:12」、関連付ける値は「4000」です。

これは可能ですか?私はこれに1週間取り組んでいますが、まだ解決策を見つけることができません。どんな助けでも本当に感謝しています。どうもありがとう。