我需要对所有输入元素进行分组并执行一些操作。
如果我得到输入 -
$('.icon').click(function() {
if ($("#map").hasClass("down")) {
$("#map").removeClass("down");
$("#map").animate({
height: "50%"
}, 600);
} else {
$("#map").animate({
height: "4%"
}, 350);
$("#map").addClass("down");
}
});
我必须按元素ProductIdentifier分组,如果有2个或2个以上相同的ProductIdentifier,那么我只需要发送第一个Productidentifier副本,数量必须是所有相同产品标识符的总和。
输出 -
<ns1:users>
<ns1:user>
<ns1:name>A</ns1:name>
<ns1:ProductIdentifier>1234</ns1:ProductIdentifier>
<ns1:Quantity>100</ns1:Quantity>
</ns1:user>
<ns1:user>
<ns1:name>B</ns1:name>
<ns1:ProductIdentifier>1234</ns1:ProductIdentifier>
<ns1:Quantity>200</ns1:Quantity>
</ns1:user>
<ns1:user>
<ns1:name>C</ns1:name>
<ns1:ProductIdentifier>12345</ns1:ProductIdentifier>
<ns1:Quantity>300</ns1:Quantity>
</ns1:user>
</ns1:users>
我的XSLT -
<ns1:users>
<ns1:user>
<ns1:name>A</ns1:name>
<ns1:ProductIdentifier>1234</ns1:ProductIdentifier>
<ns1:Quantity>300</ns1:Quantity>
</ns1:user>
<ns1:user>
<ns1:user>
<ns1:name>C</ns1:name>
<ns1:ProductIdentifier>12345</ns1:ProductIdentifier>
<ns1:Quantity>300</ns1:Quantity>
</ns1:user>
</ns1:users>
输出就是这样 -
<xsl:key match="user" name="ProductIdentifier" use="ProductIdentifier"/>
<xsl:template match="/">
<xsl:for-each select="users/user[generate-id()=generate-id(key('ProductIdentifier',ProductIdentifier)[1])]">
<ns1:user>
<ns1:name>
<xsl:value-of select="name"/>
</ns1:name>
<ns1:ProductIdentifier>
<xsl:value-of select="ProductIdentifier"/>
</ns1:ProductIdentifier>
<ns1:Quantity>
<xsl:for-each select="key('ProductIdentifier',ProductIdentifier)">
<xsl:value-of select="sum(Quantity)"/>
</xsl:for-each>
</ns1:Quantity>
</ns1:user>
</xsl:for-each>
</ns1:users>
如何总和100 + 200 = 300?
答案 0 :(得分:0)
对于数量,请执行:
<ns1:Quantity>
<xsl:value-of select="sum(key('ProductIdentifier', ProductIdentifier)/Quantity)"/>
</ns1:Quantity>