-3
すべての入力要素をグループ化して何らかのアクションを実行する必要があります。xsltでgroup byを使って合計を削除して削除する方法
私が出た場合、入力として - 私はProductIdentifier要素によってグループに持ち、その後、2または3つ以上の同じProductIdentifierがある場合、私はProductidentifierの唯一の第一コピーを送信する必要があると量は合計でなければなりません
<ns1:users>
<ns1:user>
<ns1:name>A</ns1:name>
<ns1:ProductIdentifier>1234</ns1:ProductIdentifier>
<ns1:Quantity>100</ns1:Quantity>
</ns1:user>
<ns1:user>
<ns1:name>B</ns1:name>
<ns1:ProductIdentifier>1234</ns1:ProductIdentifier>
<ns1:Quantity>200</ns1:Quantity>
</ns1:user>
<ns1:user>
<ns1:name>C</ns1:name>
<ns1:ProductIdentifier>12345</ns1:ProductIdentifier>
<ns1:Quantity>300</ns1:Quantity>
</ns1:user>
</ns1:users>
すべての同じ商品IDの
出力 -
<ns1:users>
<ns1:user>
<ns1:name>A</ns1:name>
<ns1:ProductIdentifier>1234</ns1:ProductIdentifier>
<ns1:Quantity>300</ns1:Quantity>
</ns1:user>
<ns1:user>
<ns1:user>
<ns1:name>C</ns1:name>
<ns1:ProductIdentifier>12345</ns1:ProductIdentifier>
<ns1:Quantity>300</ns1:Quantity>
</ns1:user>
</ns1:users>
マイXSLT -
<xsl:key match="user" name="ProductIdentifier" use="ProductIdentifier"/>
<xsl:template match="/">
<xsl:for-each select="users/user[generate-id()=generate-id(key('ProductIdentifier',ProductIdentifier)[1])]">
<ns1:user>
<ns1:name>
<xsl:value-of select="name"/>
</ns1:name>
<ns1:ProductIdentifier>
<xsl:value-of select="ProductIdentifier"/>
</ns1:ProductIdentifier>
<ns1:Quantity>
<xsl:for-each select="key('ProductIdentifier',ProductIdentifier)">
<xsl:value-of select="sum(Quantity)"/>
</xsl:for-each>
</ns1:Quantity>
</ns1:user>
</xsl:for-each>
</ns1:users>
出力は次のように来ている -
<ns1:users>
<ns1:user>
<ns1:name>A</ns1:name>
<ns1:ProductIdentifier>1078859</ns1:ProductIdentifier>
<ns1:Quantity>100200</ns1:Quantity>
</ns1:LeftOnBoardPart>
<ns1:LeftOnBoardPart>
<ns1:name>C</ns1:name>
<ns1:ProductIdentifier>C</ns1:ProductIdentifier>
<ns1:Quantity>300</ns1:Quantity>
</ns1:LeftOnBoardPart>
</ns1:LeftOnBoardParts>
100 + 200 = 300を合計する方法は?数量については
をあなたがこれまでに試してみましたか? StackOverflowは「自分のコードを書く」サイトではありません。 –
ここから始めてください:http://www.jenitennison.com/xslt/grouping/muenchian.html –
入力に「」のような要素の接頭辞がありますか?はいの場合は、欠落している名前空間宣言を追加してください。あなたのXSLTは別の入力で動作するようです。要素にはプレフィックスがありません。 '' –