powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Как создавать временные деревья, чтобы потом <for-each> их итерэйтил?
3 сообщений из 3, страница 1 из 1
Как создавать временные деревья, чтобы потом <for-each> их итерэйтил?
    #34514245
Logitech(R)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемые знатоки, задача: реализовать обыкновенный string-сплиттер в XSLT.
К счастью, она уже решена - вот template:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
<xsl:template name="tokenize">
  <xsl:param name="string"/>
     <xsl:param name="token"/> <!-- one token:( -->
        <xsl:choose>
           <xsl:when test="contains($string, $token)">
               <token><xsl:value-of select="substring-before($string, $token)"/></token>
	 <xsl:call-template name="tokenize"> <!-- recursion! -->
	    <xsl:with-param name="string" select="substring-after($string, $token)"/>
	    <xsl:with-param name="token" select="$token"/>
	 </xsl:call-template>
           </xsl:when>
           <xsl:otherwise>
              <token><xsl:value-of select="$string"/></token>
          </xsl:otherwise>
      </xsl:choose>
</xsl:template>
Вот только одна проблема здесь: как потом проходить в <for-each> все токены?
(Кстати, юзаю PHP 5.1.2, а он вот не понимает 'tokenize($string, $pattern)'.)
Если пишу так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
<xsl:variable name="tokens">
    <xsl:call-template name="tokenize">
        <xsl:with-param name="string" select="$param"/>
        <xsl:with-param name="token">,</xsl:param>
    </xsl:call-template>
</xsl:variable>
<xsl:for-each select="$tokens/token"> 
    <xsl:value-of select="."/> <!-- nu naprimer; -->
</xsl:for-each>
, то он мне ошибку дает: invalid type...
Спасибо заранее, у кого какие соображения по этому поводу...
...
Рейтинг: 0 / 0
Как создавать временные деревья, чтобы потом <for-each> их итерэйтил?
    #34520201
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нельзя потом по токенам пройти
...
Рейтинг: 0 / 0
Как создавать временные деревья, чтобы потом <for-each> их итерэйтил?
    #34520707
Logitech(R)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maXmoда в принципе не обязательно ориентироваться на template (ну как он сделан), важен только паттерн: создать что-нибудь проходимое потом <for-each> -ем.
Как говориться, сие прикольное содержимое можно будет передать другому template-у, скопировать в буффер обмена или послать по почте другу ;-)
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Как создавать временные деревья, чтобы потом <for-each> их итерэйтил?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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