цикл xslt для добавления чисел - PullRequest
0 голосов
/ 15 марта 2012

У меня есть следующий xml.

<employee>
    <record id=1>
      <fname>mark</fname>
      <lname>smith</lname>
      <id>10</id>
    <record id=2>
     ........
 </employee>

Я хочу добавить идентификатор для каждой записи и получить сумму.

Я не знаю, какой номер записи у меня есть под сотрудником. это может быть 1 или 10 или 100.

я нашел следующий пример на одном из форумов. Я могу использовать это, но является ли их более простой способ достичь этого?

<xsl:call-template name="for.loop">
 <xsl:with-param name="i">1</xsl:with-param>
 <xsl:with-param name="count">10</xsl:with-param>
</xsl:call-template>
<!-- Rename "old name" elements to "new name" -->
<xsl:template name="for.loop">
 <xsl:param name="i"/>
 <xsl:param name="count"/>
 <xsl:if test="$i &lt;= $count">
<!--    body of the loop goes here    -->
 </xsl:if>
 <xsl:if test="$i &lt;= $count">
  <xsl:call-template name="for.loop">
    <xsl:with-param name="i">
    <!-- Increment index-->
    <xsl:value-of select="$i + 1"/>
   </xsl:with-param>
   <xsl:with-param name="count">
    <xsl:value-of select="$count"/>
   </xsl:with-param>
  </xsl:call-template>
 </xsl:if>
</xsl:template>

1 Ответ

1 голос
/ 15 марта 2012

Есть функция sum:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  <xsl:template match="/">
    <total>
      <xsl:value-of select="sum(/employee/record/id)"/>
    </total>
  </xsl:template>

</xsl:stylesheet>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...