4

兄弟ノードの 1 つの値に基づいて特定のノード値を合計する xsl 変換を適用する必要があります。これが私のxml疑似コードです:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<Message>
    <Body>
        <Order>
            <Item>
                <.../>
                <Type>widget</Type>
                <Qty>20</Qty>
                <.../>
            </Item>
            <Item>
                <.../>
                <Type>gadget</Type>
                <Qty>10</Qty>
                <.../>
            </Item>
            <Item>
                <.../>
                <Type>widget</Type>
                <Qty>5</Qty>
                <.../>
            </Item>
            <Item/>
        </Order>
    </Body>
</Message>

タイプ「ウィジェット」のすべてのアイテムの数量合計の望ましい結果は 25 です

<xsl:value-of select="sum(/Message/Body/Order/Item/Qty)"/>

35

私のxslスタイルシートの詳細

xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fn="http://www.w3.org/2005/xpath-functions"
version="2.0"
4

1 に答える 1

3

関心のあるノード (つまり、「ウィジェット」) のみを見つけるために、述語を追加してみてください。

<xsl:value-of select="sum(/Message/Body/Order/Item[Type = 'widget']/Qty)"/>
于 2013-07-25T02:37:08.407 に答える