powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Временные деревья в XSLT
4 сообщений из 4, страница 1 из 1
Временные деревья в XSLT
    #34391284
Fixin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем построить временный список в XSLT можно, используя операцию объединения узлов |
А можно построить временное дерево?
Допустим у нас есть такой файл:
Код: plaintext
1.
2.
3.
4.
5.
<root>
	<lines>
		<line>А</line>
		<line>Б</line>
	</lines>
</root>
То бишь если у нас есть переменная $Lines, которая содержит результат запроса \\lines\line из файла:
Код: plaintext
1.
		<line>А</line>
		<line>Б</line>
То я хочу в каждый узел добавить узел <yo></yo> со значением position(), а исходный текст перекинуть в src, например в переменной $Tree получить:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
		<line>
			<yo> 1 </yo>
			<src>А</src>
		</line>
		<line>
			<yo> 2 </yo>
			<src>Б</src>
		</line>
Чтобы потом запрос уже делать именно по этому дереву.
Например запрос $Tree/*[local-name()="yo"] вернет:
Код: plaintext
1.
			<yo> 1 </yo>
			<yo> 2 </yo>

Просьба ответить именно по дереву, а не по примеру, пример специально утрирован.
...
Рейтинг: 0 / 0
Временные деревья в XSLT
    #34392144
SuSa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сталкивался с подобным, но я ушел в другом направлении
Код: plaintext
1.
2.
3.
4.
	<lines>
		<line>А</line>
		<line>Б</line>
	</lines>
Вот такое записывал как последовательность
<xsl:variable name="Lines">
<xsl:for-each select="line">
<xsl:value-of select="."/>
<xsl:text> </xsl:text>
</xsl:for-each>
</xsl:variable>
в резальтате получал Lines='A B '
а вот с объединением двух последовательностей не сталкивался, хотя вопрос конечно интересный, решишь напищи,может когда нить пригодится
...
Рейтинг: 0 / 0
Временные деревья в XSLT
    #34395131
Fixin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SuSaСталкивался с подобным, но я ушел в другом направлении
Код: plaintext
1.
2.
3.
4.
	<lines>
		<line>А</line>
		<line>Б</line>
	</lines>
Вот такое записывал как последовательность
<xsl:variable name="Lines">
<xsl:for-each select="line">
<xsl:value-of select="."/>
<xsl:text> </xsl:text>
</xsl:for-each>
</xsl:variable>
в резальтате получал Lines='A B '
а вот с объединением двух последовательностей не сталкивался, хотя вопрос конечно интересный, решишь напищи,может когда нить пригодится

Оператор | , почитай в XSLT Кук-буке рейли - раздел про операции с множествами (set).

Спасибо за пример, кстати. Мне он помог в другом вопросе.
http://sql.ru/forum/actualthread.aspx?tid=406757
...
Рейтинг: 0 / 0
Временные деревья в XSLT
    #34396679
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в мсхмл есть функция node-set, в хслт2, помнится, есть его стандартизированный аналог.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Временные деревья в XSLT
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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