XSLT xsl:key - 从报告中排除输入
XSLT xsl:key - exclude input from report
`
<Fruits>
<Fruit>
<Name>Mango</Name>
<Price>20</Price>
<Vendor>Vendor1</Vendor>
<State>AK</State>
<Status>Delivered</Status>
<ProductCode>123</ProductCode>
</Fruit>
<Fruit>
<Name>Apple</Name>
<Price>34</Price>
<Vendor>Vendor2</Vendor>
<State>AS</State>
<Status>Delivered</Status>
<ProductCode>111</ProductCode>
</Fruit>
<Fruit>
<Name>Mango</Name>
<Price>20</Price>
<Vendor>Vendor3</Vendor>
<State>FL</State>
<Status>Delivered</Status>
<ProductCode>123</ProductCode>
</Fruit>
<Fruit>
<Name>Papaya</Name>
<Price>5</Price>
<Vendor>Vendor4</Vendor>
<State>CA</State>
<Status>Sold</Status>
<ProductCode>222</ProductCode>
</Fruit>
</Fruits>
`
我不想将 Mango 包含在报告中,因为状态是已交付到具有相同 ProductCode、Price 和 Status 的另一个州。
预期输出:
ProductCode Fruit Price
111 Apple 34
222 Papaya 5
像这样:
<xsl:for-each-group select="Fruit"
group-by="string-join((ProductGroup, Price, Status), '~')">
<xsl:apply-templates select="current-group()[last()=1]"/>
</xsl:for-each-group>
谓词[last()=1]
的作用是只处理大小为1的组。
`
<Fruits>
<Fruit>
<Name>Mango</Name>
<Price>20</Price>
<Vendor>Vendor1</Vendor>
<State>AK</State>
<Status>Delivered</Status>
<ProductCode>123</ProductCode>
</Fruit>
<Fruit>
<Name>Apple</Name>
<Price>34</Price>
<Vendor>Vendor2</Vendor>
<State>AS</State>
<Status>Delivered</Status>
<ProductCode>111</ProductCode>
</Fruit>
<Fruit>
<Name>Mango</Name>
<Price>20</Price>
<Vendor>Vendor3</Vendor>
<State>FL</State>
<Status>Delivered</Status>
<ProductCode>123</ProductCode>
</Fruit>
<Fruit>
<Name>Papaya</Name>
<Price>5</Price>
<Vendor>Vendor4</Vendor>
<State>CA</State>
<Status>Sold</Status>
<ProductCode>222</ProductCode>
</Fruit>
</Fruits>
`
我不想将 Mango 包含在报告中,因为状态是已交付到具有相同 ProductCode、Price 和 Status 的另一个州。
预期输出:
ProductCode Fruit Price
111 Apple 34
222 Papaya 5
像这样:
<xsl:for-each-group select="Fruit"
group-by="string-join((ProductGroup, Price, Status), '~')">
<xsl:apply-templates select="current-group()[last()=1]"/>
</xsl:for-each-group>
谓词[last()=1]
的作用是只处理大小为1的组。