Гость
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / ошибка в преобразованиии / 12 сообщений из 12, страница 1 из 1
29.10.2014, 14:43
    #38790757
kirillqw
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка в преобразованиии
Написал следующее преобразование:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version = '1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">
 
</xsl:template>
<xsl:template name="for">
  <xsl:param name="cnst" select="3212312313123"/>
  <xsl:param name="L" select="string-length($cnst)"/>
  <xsl:param name="ii" select="1"/>
  <xsl:param name="c"/>
  <xsl:param name="a"/>
  <xsl:param name="iSum"/>
  <xsl:param name="b_kod" select="order/action"/>
  <xsl:if test="$ii &lt;= $L">
    <xsl:call-template name="for">
      <xsl:with-param name="ii" select="$ii + 1"/>
      <xsl:with-param name="c" select="substring($cnst,$ii,1)"/>
      <xsl:with-param name="a" select="substring($b_kod,$ii,1)"/>
      <xsl:with-param name="iSum" select="$iSum + (($c * $a) mod 10)"/>
    </xsl:call-template>
  </xsl:if>
</xsl:template>
 
<xsl:template name="itog">
<xsl:call-template name="for">
<xsl:param name="realKey" select="((($iSum mod 10)* 3) mod 10)"/>
<xsl:value-of select="$realKey"/>
<xsl:if test="$realKey != substring(order/action,32,1) ">
<xsl:text>eefeerfer</xsl:text>
</xsl:if>
</xsl:call-template>
</xsl:template>
 
</xsl:stylesheet>



к xml:

Код: xml
1.
2.
3.
4.
5.
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="qw.xsl"?>
<order>
<action>1223123231212222222222222222212121</action>
</order>


нужно проверить на ошибку никак не получается ...
...
Рейтинг: 0 / 0
29.10.2014, 14:57
    #38790776
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка в преобразованиии
Код: xml
1.
2.
3.
4.
5.
6.
7.
  <xsl:call-template name="for">
    <xsl:param name="realKey" select="((($iSum mod 10)* 3) mod 10)"/>
    <xsl:value-of select="$realKey"/>
    <xsl:if test="$realKey != substring(order/action,32,1) ">
        <xsl:text>eefeerfer</xsl:text>
    </xsl:if>
  </xsl:call-template>

Все что после xsl:param, там быть не должно.

Идея всего этого совершенно не ясна.
...
Рейтинг: 0 / 0
29.10.2014, 15:06
    #38790794
kirillqw
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка в преобразованиии
то что в
Код: xml
1.
<xsl:template name="for">

это цикл

а в
Код: xml
1.
2.
3.
4.
5.
6.
7.
<xsl:call-template name="for">
    <xsl:param name="realKey" select="((($iSum mod 10)* 3) mod 10)"/>
   <xsl:value-of select="$realKey"/>      <!-- это я проверить пытался попадают ли туда значения можно убрать.. -->
    <xsl:if test="$realKey != substring(order/action,32,1) ">
        <xsl:text>eefeerfer</xsl:text>
    </xsl:if>
  </xsl:call-template>




Почему не должно ?
...
Рейтинг: 0 / 0
29.10.2014, 15:11
    #38790804
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка в преобразованиии
kirillqwПочему не должно ?Потому, что xsl:call-template не может содержать ничего, кроме xsl: with- param
...
Рейтинг: 0 / 0
29.10.2014, 15:15
    #38790812
kirillqw
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка в преобразованиии
а так можно записать ?

только я не очень понимаю как нужно будет записать xsl:if test
его нужно включать в template ?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
<xsl:call-template name="for">
    <xsl:param name="realKey" select="((($iSum mod 10)* 3) mod 10)"/>
  </xsl:call-template>


    <xsl:if test="$realKey != substring(order/action,32,1) ">
        <xsl:text>eefeerfer</xsl:text>
    </xsl:if>
...
Рейтинг: 0 / 0
29.10.2014, 15:22
    #38790826
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка в преобразованиии
kirillqwа так можно записать ?Какое слово из этого Вам не понятно?
_Vasilisk_xsl:call-template не может содержать ничего, кроме xsl: with- param
...
Рейтинг: 0 / 0
29.10.2014, 15:26
    #38790829
kirillqw
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка в преобразованиии
извините ... а так ?
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
<xsl:template name="itog">
<xsl:call-template name="for">
<xsl:with-param  name="realKey" select="((($iSum mod 10)* 3) mod 10)"/>
</xsl:call-template>
<xsl:if test="$realKey != substring(order/action,32,1) ">
<xsl:text>eefeerfer</xsl:text>
</xsl:if>
</xsl:template>
...
Рейтинг: 0 / 0
29.10.2014, 15:35
    #38790849
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка в преобразованиии
kirillqwа так ?Переменные $iSum и $realKey не определены
...
Рейтинг: 0 / 0
29.10.2014, 15:37
    #38790854
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка в преобразованиии
_Vasilisk_kirillqwа так ?Переменные $iSum и $realKey не определеныИ в шаблоне for нет параметра $realKey
...
Рейтинг: 0 / 0
29.10.2014, 15:46
    #38790879
kirillqw
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка в преобразованиии
я добавил, получилось так:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
<xsl:template name="for">
  <xsl:param name="cnst" select="3212312313123"/>
  <xsl:param name="L" select="string-length($cnst)"/>
  <xsl:param name="ii" select="1"/>
  <xsl:param name="c"/>
  <xsl:param name="a"/>
  <xsl:param name="realKey"/>
  <xsl:param name="iSum"/>
  <xsl:param name="b_kod" select="order/action"/>
  <xsl:if test="$ii &lt;= $L">
    <xsl:call-template name="for">
	  <xsl:with-param name="ii" select="$ii + 1"/>
      <xsl:with-param name="c" select="substring($cnst,$ii,1)"/>
      <xsl:with-param name="a" select="substring($b_kod,$ii,1)"/>
      <xsl:with-param name="iSum" select="$iSum + (($c * $a) mod 10)"/>
    </xsl:call-template>
  </xsl:if>
</xsl:template>

<xsl:template name="itog">
<xsl:call-template name="for">
<xsl:with-param  name="realKey" select="((($iSum mod 10)* 3) mod 10)"/>
</xsl:call-template>
<xsl:if test="$realKey != substring(order/action,32,1) ">
<xsl:text>eefeerfer</xsl:text>
</xsl:if>
</xsl:template>
...
Рейтинг: 0 / 0
29.10.2014, 15:51
    #38790884
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка в преобразованиии
kirillqwя добавилЧто Вы добавили? Зачем я пишу, если Вы этого не читаете?
_Vasilisk_Переменные $iSum и $realKey не определены

И Вы в курсе, что кроме параметров есть еще и переменные?
...
Рейтинг: 0 / 0
29.10.2014, 15:56
    #38790896
kirillqw
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка в преобразованиии
я читаю, просто я думал что они определенны В <xsl:template name="for">
Вроде так и есть ... я наверно чего то не понимаю ...

да я читал что переменные можно задавать с помощью pram и variable
...
Рейтинг: 0 / 0
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / ошибка в преобразованиии / 12 сообщений из 12, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]