powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / variable и сравнение
5 сообщений из 5, страница 1 из 1
variable и сравнение
    #35425725
XX_78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите пожалуйста, почему variable не срабатывает с ни с if ни с when

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
*******
<xsl:choose>
      <xsl:when test="contains(element[@Id='NAD02']/subelement[@Sequence=1],'/')">
  	<xsl:variable name="pr_t" select="substring-after(element[@Id='NAD02']/subelement[@Sequence=1],'/')"/>
       </xsl:when>
       <xsl:otherwise>
              <xsl:variable name="pr_t" select="element[@Id='NAD02']/subelement[@Sequence=1]"/>
       </xsl:otherwise>
</xsl:choose>
*******************
...
Рейтинг: 0 / 0
variable и сравнение
    #35425748
SuSa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помница мне она имеет присвоенное ей значение только внутри шаблона.
так что ей сильно не пооперируешь, если будешь передавать в другие шаблоны, используй xsl:param
...
Рейтинг: 0 / 0
variable и сравнение
    #35426076
roces
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ошибка скорее всего заключается в том, что парсер сообщает о том, что переменная не определена. В случае условного оператора, она действительно может быть не определена(исходя из логики парсера), если стоит внутри "when" или "otherwise". Если ее определить вне условного оператора, то она получит значение в любом случае и парсер ругаться не бдет.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
<xsl:variable name="pr_t">
   <xsl:choose>
      <xsl:when test="contains(element[@Id='NAD02']/subelement[@Sequence=1],'/')">
  	  <xsl:value-of select="substring-after(element[@Id='NAD02']/subelement[@Sequence=1],'/')"/>
      </xsl:when>
      <xsl:otherwise>
          <xsl:value-of select="element[@Id='NAD02']/subelement[@Sequence=1]"/>
      </xsl:otherwise>
    </xsl:choose>
</xsl:variable>
...
Рейтинг: 0 / 0
variable и сравнение
    #35426523
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XX_78Подскажите пожалуйста, почему variable не срабатывает с ни с if ни с when
Область видимости переменной ограничен блоком, где она определена.

В Вашем случае нужно делать так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
<xsl:variable name="pr_t">
  <xsl:choose>
      <xsl:when test="contains(element[@Id='NAD02']/subelement[@Sequence=1],'/')">
              <xsl:value-of select="substring-after(element[@Id='NAD02']/subelement[@Sequence=1],'/')"/>
       </xsl:when>
       <xsl:otherwise>
              <xsl:value-of select="element[@Id='NAD02']/subelement[@Sequence=1]"/>
       </xsl:otherwise>
  </xsl:choose>
</xsl:variable>
...
Рейтинг: 0 / 0
variable и сравнение
    #35427782
XX_78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Огромное Всем СПАСИБО!!!
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / variable и сравнение
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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