我正在嘗試使用它來修改 XML <xsl:for-each>,它給了我奇怪的結果,它一直被覆寫。
1.0 版
有什么方法可以實作嗎?
輸入:
<Test>
<Tests>
<Tests1 name="value1" value = "10" />
<Tests1 name="value2" value = "20" />
</Tests>
<Tests>
<Tests1 name="value1" value = "30" />
<Tests1 name="value2" value = "40" />
</Tests>
</Test>
預期結果
<Test value1Sum = "40" value2Sum="60">
</Test>
uj5u.com熱心網友回復:
一種報告sum()各種情況的@value方法@name。使用xsl:keyfor@name您可以xsl:for-each為每個不同的名稱使用 and ,生成一個屬性,將“Sum”附加到名稱和選擇的sum()所有名稱@value中,然后通過 XPath遍歷它。@namekey()@name@value
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:key name="names" match="*[@value]/@name" use="."/>
<xsl:template match="Test">
<Test>
<xsl:for-each select="//@name[generate-id() = generate-id(key('names', .)[1])]">
<xsl:attribute name="{concat(.,'Sum')}">
<xsl:value-of select="sum(key('names', .)/parent::*/@value)"/>
</xsl:attribute>
</xsl:for-each>
</Test>
</xsl:template>
</xsl:stylesheet>
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/490147.html
上一篇:屬性映射未在片段中初始化
