XSLT:累積合計(条件付き)

PManual

XSLTを使用して条件付き合計を行う必要があります。各「SKU」の「Oty」の合計は、「Provider」ノード内にリストされているプロバイダーについてのみ計算する必要があります。提供されている例では、providerCode 4の数量は、「プロバイダー」リストにないためスキップする必要があります。XSLT1.0の使用に制限されています。

助けていただければ幸いです。ありがとう!

これがサンプルXMLです。

<?xml version="1.0" encoding="UTF-8"?>
<Root>
    <Providers>
        <ProviderCode>1</ProviderCode>
        <ProviderCode>2</ProviderCode>
        <ProviderCode>3</ProviderCode>        
    </Providers>
    <SKU>
        <SKU>XYZ</SKU>
        <Description>XYZ Description</Description>
        <Provider>
            <ProviderCode>1</ProviderCode>
            <Qty>100</Qty>
        </Provider>
        <Provider>
            <ProviderCode>2</ProviderCode>
            <Qty>67</Qty>
        </Provider>
        <Provider>
            <ProviderCode>3</ProviderCode>
            <Qty>74</Qty>
        </Provider>
        <Provider>
            <ProviderCode>4</ProviderCode>
            <Qty>62</Qty>
        </Provider>    
    </SKU>
    <SKU>
        <SKU>ABC</SKU>
        <Description>ABC Description</Description>
        <Provider>
            <ProviderCode>1</ProviderCode>
            <Qty>20</Qty>
        </Provider>
        <Provider>
            <ProviderCode>2</ProviderCode>
            <Qty>77</Qty>
        </Provider>
        <Provider>
            <ProviderCode>3</ProviderCode>
            <Qty>42</Qty>
        </Provider>    
        <Provider>
            <ProviderCode>4</ProviderCode>
            <Qty>631</Qty>
        </Provider>    
    </SKU>    
</Root>

必要な出力は次のとおりです。

<?xml version="1.0" encoding="UTF-8"?>
<Root>
    <SKU>
        <SKU>XYZ</SKU>
        <Qty>241</Qty>
    </SKU>
    <SKU>
        <SKU>ABC</SKU>
        <Qty>139</Qty>
    </SKU>    
</Root>
Martin Honnen

sum比較するsum(Provider[ProviderCode = //Providers/ProviderCode]/Qty)か、キーを使用して、必要なノードで簡単に使用できます。

<xsl:stylesheet
  version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:output indent="yes"/>

<xsl:key name="prov" match="Providers/ProviderCode" use="."/>

<xsl:template match="Root">
  <xsl:copy>
    <xsl:apply-templates select="SKU"/>
  </xsl:copy>
</xsl:template>

<xsl:template match="Root/SKU">
  <xsl:copy>
    <xsl:copy-of select="SKU"/>
    <Qty><xsl:value-of select="sum(Provider[key('prov', ProviderCode)]/Qty)"/></Qty>
  </xsl:copy>
</xsl:template>

</xsl:stylesheet>

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

条件付きのR累積合計

分類Dev

条件付き累積合計マクロ

分類Dev

条件付きの累積合計

分類Dev

SASの条件付き累積合計

分類Dev

条件付き累積集計

分類Dev

動的条件を使用した条件付き累積合計

分類Dev

日付によるパンダの累積条件付き合計

分類Dev

パンダの条件付き累積合計

分類Dev

条件付きの列のパンダ累積合計

分類Dev

dplyrを使用した条件付き累積合計

分類Dev

条件付きの累積合計リセット

分類Dev

Pyspark-リセット条件付きの累積合計

分類Dev

パンダ:条件付きの2列からの累積合計

分類Dev

停止条件付きのnumpy配列の累積合計

分類Dev

Pythonでの条件付き反復累積合計

分類Dev

Pyspark:ウィンドウ/条件付きの累積合計

分類Dev

パンダフレーム累積合計条件付き

分類Dev

条件付きの累積合計でグループ化

分類Dev

条件付き累積時間の計算

分類Dev

Netezzaの制限付き累積合計

分類Dev

Pyspark-条件付きの列の累積合計を取得します

分類Dev

Rの適用関数を使用した条件付き累積合計

分類Dev

条件付き累計

分類Dev

条件付きの累積平均

分類Dev

Scalaの条件付き累積

分類Dev

日付範囲に基づくパンダデータフレームの条件付き累積合計

分類Dev

配列条件付きの合計積

分類Dev

累積合計が条件付きで特定の値に達したときに行を検索する

分類Dev

dplyr / Rリセット付き累積合計