powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Формирование данных из <xsl:template>
2 сообщений из 2, страница 1 из 1
Формирование данных из <xsl:template>
    #33871402
darknode
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый вечер!
Если кто знает, плиз, подскажите где бажу

Есть два темплейта:


Этот формирует (по крайней мере пытается фомировать) элемент типа <input .....> по входящим данным
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
 
     <xsl:template name="radioInput">
		<xsl:param name="value" />
		<xsl:param name="id" />
		<input type="radio">
			<xsl:attribute name="id">
				radioListValue_id_<xsl:value-of select="$value" />
			</xsl:attribute>
			<xsl:attribute name="name">
				radioListValue_<xsl:value-of select="$id" />
			</xsl:attribute>
			<xsl:attribute name="value">
				<xsl:value-of select="$value" />
			</xsl:attribute>
		</input>
		<xsl:value-of select="$value" />
	</xsl:template>

Вот это рекурсивно обрабатывает входящую строку и режет ее на элементы, разделителем элементов в строке являеться ";", и для каждого элемента "вызавает" <xsl:template name="radioInput">, тоесть предидущий темплейт.

Код: plaintext
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.
 
            <xsl:template name="markup" match="text()" mode="CSV">
		<xsl:param name="mask" />
		<xsl:param name="delimiter" select="';'" />
		<xsl:param name="id" />
		<xsl:choose>
			<xsl:when test="contains($mask,$delimiter)">
				<xsl:variable name="result">
					<xsl:call-template name="radioInput">
						<xsl:with-param name="value" select="substring-before($mask, $delimiter)" />
						<xsl:with-param name="id" select="$id" />
					</xsl:call-template>
				</xsl:variable>
				<xsl:value-of select="$result" />
				<xsl:call-template name="markup">
					<xsl:with-param name="mask" select="substring-after($mask, $delimiter)" />
					<xsl:with-param name="id" select="$id" />
					<xsl:with-param name="delimiter" select="$delimiter" />
				</xsl:call-template>
			</xsl:when>
			<xsl:otherwise>
				<xsl:variable name="result">
					<xsl:call-template name="radioInput">
						<xsl:with-param name="value" select="$mask" />
						<xsl:with-param name="id" select="$id" />
					</xsl:call-template>
				</xsl:variable>
				<xsl:value-of select="$result" />
			</xsl:otherwise>
		</xsl:choose>
	</xsl:template>

<xsl:template name="markup" > - данный темплейт вызываю вот таким вот образом :

Код: plaintext
1.
2.
3.
4.
5.
6.
      <xsl:variable name="result">
			<xsl:call-template name="markup">
				<xsl:with-param name="mask" select="@mask" />
				<xsl:with-param name="id" select="test" />			</xsl:call-template>
			</xsl:variable>
		<xsl:value-of select="$result" />

В @mask лежит вот такая строка "1;2;3;4;5;6;7"

В итоге на выходе всего это волучаю "1234567"
А хотелось бы получить набор input'ов
Подскажите плиз где собака зарыта
...
Рейтинг: 0 / 0
Формирование данных из <xsl:template>
    #33877560
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попробуй в конце <xsl:copy-of select="$result" />
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Формирование данных из <xsl:template>
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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