問題タブ [muenchian-grouping]
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 - このマージと重複排除のアプローチの何が問題なのですか?
このソース ドキュメントを考えると:
および利用可能な環境の 1 つであるパラメーター、マージされて重複排除されたノードセットになり、最も具体的な値を保持したいと思います。したがって、「製品」の場合:
私は XSLT 1.0 でキーを使用するのが初めてで、'prod' では機能するが、'dev' や 'qa' では機能しないこのスタイルシートを思いつきました。
これは私が目指しているアプローチです:
<item.../>
関連するすべてのノードを結合してノードセットにマージします|
- このノード セットを
@grp
および@prop
属性でグループ化します - 結果のグループのいずれかで最後のノードを保持します (重複除外)
私はキーに慣れていないので、このコードのビットを考えているとしか言えません。
last()
重複アイテムのノードセットからノードを選択していますが、「dev」または「qa」で実行すると、次のようになります。
各環境パラメーターの中間変数all-items
を確認しましたが、少なくともそれだけは正しく機能しているようです。
<group name="qa"/>
下に移動すると、次のようになります。
次に、「qa」で実行すると動作します:
では、なぜ<group name="...">...</group>
I'm selection の位置が重要なのでしょうか? 具体的には、最後の位置でしか機能しないのはなぜですか?また、どの位置でも機能させるにはどうすればよいですか?
編集1
$all-items
(任意の環境で)データを分離して独自のファイルに入れると、XSL は正しく機能します。次の例は、グローバルと「dev」の結合です。
そしてこのXSL:
結果:
それで、今は変数に落ちているように見えますall-items
か?
ありがとうございました。
xslt-1.0 - XSLT1.0のsum関数を使用した「GroupBy」の「header」を削除しないでください
XSLT出力から次の結果が得られます。結果のヘッダーにあるInvoiceNo、InvoiceDate、DueDateは必要ありません。最初の行ではなく、PC数量TotalAmountの行だけが必要です。
私のxmlファイルは次のようになります。
そして私のXSLTファイルはこのようになっています。
私は何が間違っているのですか?
よろしく、ミカエル
xslt - muenchianグループ化でキーがどのように機能するか
xsltでmuenchian-groupingを実行しているときに、キーがどのように生成されるかについては、まだ答えが見つかりません。私が見つけた例はすべて、非常に単純なxmlファイルを持っています。次のxmlファイルがあるとします。
私がやりたいのは、各出荷の販売コードごとに注文明細をグループ化することです。
xsltファイルで、キーを次のように定義します。
そして、xmlファイルの最初の部分を作成した後、次のようにします。
<shipment
xmlファイルは現在のノードから解析され、構築されたキー<order-line
はその特定の出荷に対してのみノードを使用することを期待します。しかし、代わりに、ファイル内の<shipment
すべてのノードを含む3つのノードを取得<order-line
します。それで、キーが作成されるとき、xmlファイルは常にルートから解析されるように見えますか?そうですか?これを回避する方法はありますか?
xslt - XSLT 1.0:キーを使用して一意の値を並べ替えますが、例外があります
私は次の単純化されたXML構造を持っています:
「Qualifierstring」と「revenueCenter」に応じてレコードセット(R)をグループ化する必要があります。私は完璧に機能するこのXSLTを思いついた:
キーを定義して一意のアイテムを選択し、グループを作成してレコードセット(R)を処理します。
しかし、「revenueCenter」9992と9993をグループ化するために、どのようにキーを定義できますか?2つの異なるキーを設定する必要がありますか?(ただし、テンプレートで2つのキーを使用するにはどうすればよいですか)または、既存のキーを値で拡張できますか?
XMLは次のようになります。
2012年5月24日更新: 私は実際に私が望むことを行うXSLTを思いついた、私は2つの異なるキーを使用している:
ソースXMLに適用すると、次の正しい出力が得られます。
このソリューションが機能するのは、除外して個別にグループ化する必要がある値がわかっているためです。
xml - Muenchian メソッドを使用した複数のキーでの XSLT グループ化
これが入力ファイルです。
これらのブロックはすべて、表示されて<allocfile>
いないタグでラップされています。なぜでしょうか? そして、これらのブロックはすべて最上位の要素にラップされています<xml>
。
出力は
入力ファイルは、複数のキーに基づいてソートおよびグループ化する必要があります。関数と Muenchian メソッドを使用して進めましconcat
たが、Web からはあまり役に立ちませんでした。XSLT 1.0 を使用しています。
グループ分けのルール
ファイル内のすべてのノードには
<hd1>
値があり1234..
、これがキーによる最初のグループになり、出力に次のように表示されます。<Header1>
- グループ化の 2 番目のキーはノード コードです。同じ値を持つノードがグループ化されます。として表示されます。コード ヘッダー
2 番目のキーは、ノード
G_H
、FUN
、oH
、のグループですy
。これらすべてのノードの値が同じである場合、それらはグループ化されます。出力に次のように表示されます<Header2>
ノード
<alc>
、<No>
、 、<DT>
ではグループ化は行われません<AMOUNT>
。それらは、各グループ内で異なる値を持っています。
xml - xsltとMuenchianメソッドを使用して、表形式のxmlデータをマトリックスのようなヒートマップに変換しようとしています
Muenchianメソッドについて読んでいますが、必要な形式のhtmlを生成するためのグループ化を理解していません。
これがソースxmlです。
これが私が達成しようとしていることです。
必要な出力を取得することに実際には近づいていません。http://www.jenitennison.com/xslt/grouping/muenchian.htmlから例を取得しましたが、それ以上は取得しませんでした。
colセクションに表示されるデータを制御することはできますが、ツリー全体を変更することはできません。どんな助けでも大歓迎です。
xml - 名前ディレクトリの XSLT グループ化
XSLT を使用して作業しているプロジェクトの姓ディレクトリを構築しようとしています。最終的にはこんな姿になりたいです。XSLT でセクション検索のインデックス グループを取得して、その人の姓の最初の文字を表示する場所を指定し、さらに、その人の姓の最初の文字に基づいて、結果の各セクションでグループ化するようにします。 .
以下のサンプルをご覧ください。
検索条件: ACFGJ
あ
アンダーソン・
アンドリュース
・アリソン
C
チャールズ
ふ
フレデリックス・
フランクス
G
ガレット
J
ジョンソン
・ジェームズ
人物の姓の最初のイニシャルを適切な文字 (セクション A Anderson、Andrews、Allison....J Johnson James) の下に配置するセクションの Muenchian グループ化を試みましたが、うまくいきました。
この同じコードを使用して、XML のデータに基づいて人の姓の最初の文字を表示する ACFGJ による検索を生成するセクションに適用しようとしました。コードを試してみたところ、このセクションの結果は返されませんでした。
誰かがこれを手伝ってくれますか?ありがとう
乾杯
アップデート
OP は、この入力ドキュメントを変換したいと考えています ...
... XSLT を使用して、上記のテキスト形式の出力ドキュメントに変換します。OP が XSLT 1.0 と 2.0 のどちらを使用しているかは不明です。検索文字は、スペースで区切られた大文字のリストとして書式設定されたスタイル シート パラメーターとしてスタイル シートに提供され、次のように宣言されます ...
これらの文字は既にアルファベット順に並べ替えられており、大文字に制限されていると想定できます。
xml - muenchian グループ化では、キーを直接使用できるのに、なぜ generate-id を使用する必要があるのでしょうか?
私の入力xmlファイルは次のとおりです。
XSLT 1.0 では、以前の要素値を持つすべての Property 要素を選択したいと考えています。は同じで、 の前に同じ値を作成します。一つの記録として。
例 (サンプルのサブ入力ファイルを使用) 1) input.xml
サンプル サブ output.xml
2) 入力.xml
サンプル サブ output.xml
私はstackoverflow自体で同様の質問をしましたが、次のようなステートメントと混同しました
キーは次のとおりです。
[ここでもう 1 つ質問: キーの一致値は、 Property または root/Property として指定する必要があります。キーはコンテキストに応じて Property 要素を選択すると考えています。(ここでのコンテキストは /root/Property です。これは、ステートメントでここで指定された XPATH 式であるため、<xsl:apply-templates select="/root/Property)
これについて明確にしてください。]
私の実際の懸念は
これを使用する代わりに:
私はこれを使用できます:
キーがどこにあるか
実際の違いは何ですか (実行とフローに関して)?
xslt - 部分文字列に対する XSL Muenchian メソッド
一部の XML 出力を評価テーブル (水文学関連) に変換しようとしています。これは、100 分の 1 の値が上を横切り、10 分の 1 の値が下になります。私が直面している問題は、ht属性の部分文字列を使用して一意の値をソートできないように見えることです。
XML 出力のサンプルを次に示します。
出力は次のようになります。
正しい列で cap 属性を取得できますが、GH 列 (100 分の 1 の値が削除された ht 属性) を取得して、行ごとに 1 回だけ表示することはできません。私はこのようなものを得る:
これが、このセクションをフォーマットする xsl の私のセクションです。xsl:choose は、列に対してうまく機能しているようです。Muenchian メソッドを試してみましたが、うまくいきません (部分文字列キーで機能させるのに苦労しています)。
これが最善の方法ですか、それとも、指定された部分文字列に対して各行を 1 回だけ表示する別の方法がありますか (19.76、19.77、19.78、19.79 の値に対して 19.7 回)? 評価は通常、例のようにゼロ以外の値から始まるため、100 番目の 0 の値を使用してグループを開始し、9 をグループの終了に使用することはできません。
ありがとう、マット