как увеличить переменную int в xslt? - PullRequest
1 голос
/ 19 мая 2011

Я работаю над версией XSLT 1.0. Я объявил переменную int, которая должна увеличиваться, когда одно (если условие) условие истинно. Так может кто-нибудь сказать мне, как увеличить эту переменную или любой солутон к этому?

например.

<xsl:variable name="count" select="-1" />

- объявленная переменная. Затем после этого я проверяю одно условие

<xsl:if test="$serviceP=$new">

// if condition id true the i have to increment the variable value (i.e count).
//and  again have compare that count varibale value in if condition

<xsl:if test="$count &lt; 2">
// runs when condition is true.
</xsl:if>
</xsl:if>

Заранее спасибо.

1 Ответ

2 голосов
/ 19 мая 2011

XSLT является функциональным языком и поэтому имеет неизменяемые переменные - после назначения их содержимое не может быть изменено .

Тебе нужно перестать мыслить процедурно. Объясните свою проблему, и многие люди покажут вам, как решить эту проблему, не увеличивая ни одной переменной.

Например, решение может быть таким простым: :

<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output omit-xml-declaration="yes" indent="yes"/>

 <xsl:template match="/*">
    Latest Service:
     <xsl:apply-templates select="service[@new='true'][1]"/>

     New Services:
     <xsl:apply-templates select="service[@new='true'][position() >1]"/>
 </xsl:template>
</xsl:stylesheet>

В более сложных ситуациях вы можете написать шаблон, который вызывает себя рекурсивно, передавая определенный параметр со значением на 1 больше значения, которое он имеет в текущем вызове шаблона.

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