如何根据另一个值添加值?
<?xml version="1.0" encoding="UTF-8"?>
<items>
<item id="A1" quantity="5">
<info type="ram x1" import="CA" />
</item>
<item id="A2" quantity="3">
<info type="ram x1" import="SA" />
</item>
<item id="A3" quantity="10">
<info type="ram x2" import="AU" />
</item>
</items>
我需要根据类型
添加所有数量,例如我需要一个输出,
内存 x1 数量=8 内存x2数量=10
<?xml version="1.0" encoding="UTF-8"?>
<items>
<details type="ram x1" quantity="8"/>
<details type="ram x2" quantity="10"/>
</items>
首先尝试 for-each-group 获取数量,看看是否有效,
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:output method="html" indent="yes" />
<xsl:template match="items">
<xsl:for-each-group select="item" group-by="info/@type">
<xsl:value-of select="sum(@quantity)" />
</xsl:for-each-group>
</xsl:template>
</xsl:stylesheet>
最佳答案
使用current-group()
函数,即:
<xsl:value-of select="sum(current-group()/@quantity)" />
关于xml - XSLT 根据另一个值添加属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20986550/