powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / преобразование xml
6 сообщений из 6, страница 1 из 1
преобразование xml
    #36065590
Фотография Referee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
добрый день.

сервер
ms sql 2005
имеетюся xml данные в виде
Код: plaintext
1.
2.
3.
4.
5.
6.
declare @x xml

select @x = '<params>
  <param name="Calc">1</param>
  <param name="Month">6</param>
  <param name="Year">2009</param>
</params>'

хотелось бы увидеть
Код: plaintext
1.
2.
3.
4.
5.
declare @y xml
select @y = '<params>
  <param name="Calc">1</param>
  <param name="beginDate">2009-06-01</param>
  <param name="endDate">2009-06-30</param>
</params>'

проблема в том что -
1. транформация xml должна выполнятся на сервере (использование xsl на сколько я знаю наполучится...)
2. транформация xml возможна самая разная - и собственно сами правида преобразования будут храниться в таблице (тоесть SET @x.modify(...) тоже отпадает ибо требует строковый литерал и не воспринимает SET @myDoc.modify(@rule))

как бы обойти эту проблемку?

Спасибо.
...
Рейтинг: 0 / 0
преобразование xml
    #36066798
Grundiss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
совсем не шарю в серверно-базоданновых технологиях и код, который вы написали мне не очень знаком, но первая мысль: почему нельзя xslt (это ведь серверная технология) и если уж нельзя -- может эту строку регэкспами распарсить тогда?
...
Рейтинг: 0 / 0
преобразование xml
    #36067118
Фотография Referee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Grundiss,

ну как то не может вот ms sql работать с xslt (или я пока не знаю как...)
а что имелось введу под "может эту строку регэкспами распарсить тогда?" - можно поподробнее??
...
Рейтинг: 0 / 0
преобразование xml
    #36073570
XT84
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Grundiss,

если MSSQL2005, тогда там есть XQuery (насчет XSLT не в курсе надо смотреть документацию)
...
Рейтинг: 0 / 0
преобразование xml
    #36073963
Фотография PA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если через sp_executesql:
Код: 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.
declare @x xml

select @x = 
'<params>
  <param name="Calc">1</param>
  <param name="Month">6</param>
  <param name="Year">2009</param>
</params>'

select @x as x

declare @paramDef nvarchar( 200 )
set @paramDef = N'@x xml'

declare @xQuery nvarchar( 500 );
select @xQuery = 
N'<params>
	{/params/param[@name="Calc"]}
	<param name="beginDate"> {/params/param[@name="Year"]/text()}-{/params/param[@name="Month"]/text()}-1</param>
	<param name="endDate"> {/params/param[@name="Year"]/text()}-{/params/param[@name="Month"]/text()}-30</param>
</params>'

declare @sql nvarchar( 500 );
select @sql = N'
select @x.query(
''' + @xQuery + ''') as y'

exec sp_executesql @sql, @paramDef, @x = @x
...
Рейтинг: 0 / 0
преобразование xml
    #36074535
Фотография Referee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XT84
XQuery это клево но не подходит ибо нельзя

Код: plaintext
1.
2.
declare @rule varchar( 255 )
select @rule = '\\root\someNode'
select @xml.query(@rule)

проблема в том что это заранее не известно какой именно @rule надо применить и они будут хранится в таблице.

PA насчет sp_executesql - его использовать нельзя.. политика партии не приветсвует

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


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