Я пытаюсь суммировать поле qty в моем xml с помощью xslt 2.0, и оно выводит количество одного из моих единиц оборудования с несколькими записями без суммирования по группе оборудования. Любые идеи о том, как это можно исправить?
Это XSLT, который я использую:
<xsl:for-each-group select="//node()" group-by="*[local-name()='lin_id']/text()">
<Results>
<xsl:element name="LIN_ID"><xsl:value-of select="*[local-name()='lin_id']"/></xsl:element>
<xsl:element name="Count"><xsl:value-of select="sum(current-group()/*[local-name()='qty'])"/></xsl:element>
</Results>
</xsl:for-each-group>
Вот исходный XML-файл:
<Equipment>
<lin_id>C18312</lin_id>
<qty>5</qty>
</Equipment>
<Equipment>
<lin_id>C18345</lin_id>
<qty>22</qty>
</Equipment>
<Equipment>
<lin_id>C18378</lin_id>
<qty>43</qty>
</Equipment>
<Equipment>
<lin_id>C18378</lin_id>
<qty>208</qty>
</Equipment>
А вот что вывод на данный момент:
<Results>
<LIN_ID>C18312</LIN_Name>
<Count>5</Count>
</Results>
<Results>
<LIN_ID>C18345</LIN_Name>
<Count>22</Count>
</Results>
<Results>
<LIN_ID>C18378</LIN_Name>
<Count>43</Count>
</Results>
Итак, вы можете видеть, что он выполняет группировку, но для LIN_ID C18378 он должен суммировать количество из 2 записей и выводить счет 251, но вместо этого он просто отображает одно из значений.