問題タブ [xslt-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.
xml - 最低価格を見つけるための XSLT
私は XSLT の初心者で、XML を XML に変換するために使用しています。
Prices
合計額が最も低いタグを取得する必要があります。
ソース XML:
XSLT:
出力:
期待される出力:
上記のように、出力にはPrices
属性として最も低い値を持つタグも含まれている必要があります。
助けてください。
xml - グループ化を使用したXSLT1.0の計算
私はXSLTの初心者であり、XSLTを使用してJavaを介してXMLをXMLに変換します。
ソースXML:
XSLT:
出力XML:
期待される出力XML:
ソースXMLでは、本とその価格を受け取りませんが、関連性はありません。
<Price>
タグは1冊の本の価格を示します。すべての本の合計金額を以下のように計算する必要があります
助けてください。
xml - XSLT 1.0 ノード セットの取得
私は XSLT の初心者です。XSLT を使用して、JDK 6 を介して XML を XML に変換しています。
以下は、Web サービスから受け取ったソース XML です。
ソース XML:
XSLT:
上記の XSLT をソース XML に適用すると、次の出力 XML が得られます。
出力XML:
期待される出力:
問題は variable を作成するロジック内にありますPrefAirlines
。
以下のアプローチも試しましたが、期待される出力が得られませんでした。
単一の値の代わりにノードセットを取得できる関数はありますか? 助けてください。
xml - XSLT Group/merge childs (キーを使用)
既に書いたコードを使用して解決策を推測する方法を理解しようとしています。
簡単にするために、最初にやりたいこととこれまでに得たものを説明します。
同じ title 属性を持ついくつかのノードを含む XML 変数が XSLT にあるとします。
@Dimitre Novatchev ソリューションを使用して、それらを 1 つのノードに結合することができました。
だから私が持っていたら:
次のキーを使用した後
私は得るでしょう:
ここで、これを少し変更したいと思います。私の決定により、タイトルをマージ/結合できるようにしたいと思います。上記の例では、xxx と zzz は異なるタイトルを使用していますが、同じグループに属するように定義したいと考えています (極端なケース - 私のワークスペースではそれらを同一に定義しました - 次のようなケースがもっとあるかもしれません)。これ)。
一般的にどのような方向にすべきか教えていただければ幸いです(キーを変更するか、別の方法(generate-idなど)を使用する必要があると思います)。
多くの不必要な労力を必要とする悪いソリューションだけを実装していることに気づきました。
xml - xslt 1.0のノードを可算フィールドでグループ化するにはどうすればよいですか?
私はほぼこの種のxmlを持っています:
言語が固定されている名前フィールドで料金をグループ化するにはどうすればよいですか?たとえば、xlt 1.0を使用した英語版の名前によるグループ課金?for-each-groupが存在するxslt2.0では問題はないと思います。しかし、1.0では、複雑な命令を使用してxsl:keyを作成することさえできませんでした。
en-us
おおよそ:xsltレンダリングで次のように変換したい:
料金を名前でグループ化し、価格を要約します。翻訳を取得するための複雑なルールがあります。1。デフォルト言語を定義します。この言語がXMLで指定されていない場合は、xslt(開発者が手動で設定)のデフォルト言語を使用します。2.ノードにデフォルト言語の翻訳がない場合は、FallbackLanguage(常にen-us)で翻訳をチェックします。3.以前に翻訳を指定しなかった場合は、翻訳された値を[NONAME]に設定します。
私のアイデアは、翻訳ロジックを別のテンプレートにカプセル化することでした。
それで、その後、可変のChargesToDisplayを多くのペアで構成するようにしたかったのです。
ChargesToDisplayですべてのグループ化を行います。GetLocalizedEntityの実装:
xml - xsltを使用して各レコードから別の要素値に基づいて一意の(異なる)要素値を取得する方法
各レコードの別の要素値に基づいて要素値を取得する必要があります。
RECORD_TYPE='ERROR' の場合、すべてのレコードの個別の (一意の) ERROR_DESC 値をすべて ERRORS:ERROR_DESC の下に出力する必要があります。
各エラーの説明は、新しい行に出力する必要があります。
予想される出力は次のとおりです。
前もって感謝します。
xslt - xslt:中間参照ノードを介して一意のノードを選択しますか?
XSLT2。
こんにちは、私は3つのノードを持つxmlを持っています。これは、Children、Fathers、MothersFathersという「children」の観点から名前が付けられています。父親ノードから始めて、子ノードのIDに基づいて子のMothersFatherノードを見つける必要があります(子ノードは他の2つを結合する中間参照です)。
したがって、各父親が子供たちの個別のMothersFatherを取得するために、これらは人間ではありません。父親は数百人の子供を持つことができますが、関連するMothersFathersは20人程度です:)
XMLの簡略化されたバージョン(実際には、約80のFatherノード、3000のChildノード、および400のMothersFatherノードがあります):
私のxsltは次のようになります:
Try 1では、すべてのノードとMothersFatherIDを取得できます。Try1の出力は次のとおりです。
'distinct-value'を選択しているTry2では、次のような出力が必要です。
(実際の出力ではありません-適切なノードを参照できることを示すデバッグ用のものだけです)。
しかし、「apply-templates」呼び出しに渡すために一意のMothersFatherIDを参照するために何を使用するのか理解できません。
何を試しても、次のようなエラーのバリエーションがあります
。Required item type of first operand of '/' is node(); supplied value has item type xs:anyAtomicType
またはAxis step child::element('':MothersFatherID) cannot be used here: the context item is an atomic value
。文字列値が使用されているノードを選択しようとしている、またはその逆のことを意味していると思います。distinct-value()関数の使用が完全に間違っているのではないでしょうか。
誰かがこれを行う方法に光を当てることができますか?(私は、この種のことにとらわれないときに、このxsltが悟りの禅の瞬間を持つことを望んでいます)。
さらに、それができたら、MothersFatherを各Fatherに対してソートされた順序で配置する必要があります-実際のxmlには、各'ID'に関連付けられた'Name'があります-うまくいけば、for-each'sort'ステートメントは次のようになります上記の問題を修正するものへの同様の参照?
御時間ありがとうございます。ブライス。
編集:
わお!!答えてくれてありがとうディミトレ。私はそれを調べました、そして私がそれを完全に理解していないのであなたが私のためにそれを少し分解することができるかもしれないことを望んでいましたか?答えは:
関係するキーを使用します。
ライン<xsl:template match="Children|MothersFathers|text()"/>
-このラインはどのように機能していますか?デバッガーをステップスルーすると、この行をまっすぐ通過します。コメントすると、ソースがわからない余分な出力がたくさんあります。
そして、MothersFatherノードを与えるapply-templates行 -私はこれを紙の上で分解して魔法を見ようとしましたが、それを完全に理解することはできませんでした。これは 、生成されたID'(ドットドット)'が現在のFather IDによって一致するMothersFatherノードを取得することを意味するようなものです-親ノードと関係がありますか?どれ?ChildByFIdAndMFIdキーに基づいて生成されたIDと等しい-この1は、一致する生成されたIDの最初の出現のみを取得し、それによって私の明確な値を与えますか?<xsl:apply-templates select= "key('kMFById', key('kMFByFId', ID)[generate-id(..) =
generate-id(key('ChildByFIdAndMFId', concat(../FathersID,'+',.))[1] ) ] )">key('kMFById', key('kMFByFId', ID)
[generate-id(..)
[1]
(ディミトレによるこの回答も、JLRishieの回答と非常によく似ています。彼の種類は機能しているようですが、ディミトレに何かが欠けていますか?)
よろしく、ブライス。
xml - XSL を使用して XML を変換し、出力を HTML としてフォーマットする
より便利な構造を得るために、XSL を使用して XML 入力をフォーマットする必要があります。処理の次のステップとして、HTML に変換したいと考えています。次の入力があるとします: (0)
および次の XSL テンプレート: (1)
それは私にかなり良いXMLを与えます: (2)
XML # 2を htmlに変換する別の XSL があります。
ここに質問があります。入力 xml を両方のテンプレート (またはマージされたテンプレート) で 1 つのステップで処理したいと考えています。どうすればできますか?
前もって感謝します。
sorting - XSLTは、用語集インデックスの一意の値のみを表示しますか?
この用語集は、各エントリの最初の文字からインデックスを導き出します。一意の値のみを表示する方法を見つけようとしています。previous-siblingとposition()を調べましたが、正しい方法を見つけることができないようです。XSLT1.0と属性の使用に制限されています。
Grossary.xml
data.xml
用語集.xsl
これまでの出力
a | a | b | c | C | c | o |
リンゴ種
のある赤い
果実
アボカド
グアカモーレで楽しむまろやかな果実
b
バナナ
トロピカルイエローの果実
cマスク
メロン
一種のメロン
C
チェリー
クラスターで育つ赤い果実
c
クランベリー
感謝祭で楽しむサワーベリー
o
オレンジ
オレンジの柑橘系の果実
必要な出力
a | b | c | o
リンゴ種の入った
赤い実
アボカドワカモレ
で楽しむまろやかな果実
b
バナナ
トロピカルイエローフルーツ
cマスク
メロン
一種のメロン
さくらんぼ
群生する赤い実
クランベリー
感謝祭で楽しんだサワーベリー
o
オレンジ
オレンジの柑橘系の果物
javascript - XSLT の Javascript
XSLT では、特定の要素にいくつかの値を割り当てる必要があり、Javascript を使用して印刷する必要があります。たとえば、123 は私の入力要素データであり、XSLT で Javascript コードを使用して要素が「123 3456」を表示するように出力したいと考えています (私は XSLT 1.0 を使用しています)。
誰かがこれを解決できれば大変助かります。