powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / ошибка в преобразованиии
12 сообщений из 12, страница 1 из 1
ошибка в преобразованиии
    #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
ошибка в преобразованиии
    #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
ошибка в преобразованиии
    #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
ошибка в преобразованиии
    #38790804
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kirillqwПочему не должно ?Потому, что xsl:call-template не может содержать ничего, кроме xsl: with- param
...
Рейтинг: 0 / 0
ошибка в преобразованиии
    #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
ошибка в преобразованиии
    #38790826
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kirillqwа так можно записать ?Какое слово из этого Вам не понятно?
_Vasilisk_xsl:call-template не может содержать ничего, кроме xsl: with- param
...
Рейтинг: 0 / 0
ошибка в преобразованиии
    #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
ошибка в преобразованиии
    #38790849
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kirillqwа так ?Переменные $iSum и $realKey не определены
...
Рейтинг: 0 / 0
ошибка в преобразованиии
    #38790854
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_kirillqwа так ?Переменные $iSum и $realKey не определеныИ в шаблоне for нет параметра $realKey
...
Рейтинг: 0 / 0
ошибка в преобразованиии
    #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
ошибка в преобразованиии
    #38790884
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kirillqwя добавилЧто Вы добавили? Зачем я пишу, если Вы этого не читаете?
_Vasilisk_Переменные $iSum и $realKey не определены

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

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


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