Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / XML -> таблица / 8 сообщений из 8, страница 1 из 1
01.08.2007, 10:12
    #34697253
Guest2222
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML -> таблица
Как преобразовать XML в таблицу. У меня получается список, а не таблица (из-за того, что теги <td> имеют одинаковые имена). Т.е. нужно развернуть список.

Код: 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.
DECLARE @idoc int
DECLARE @doc nvarchar(max)
SET @doc ='
<rows>
<tr>
  <td><a>20.07.2007</a></td> <-- Колонка 1
  <td><a>8:07:15</a></td> <-- Колонка 2
  <td><a></a></td> <-- Колонка 3
  <td><a>0:01</a></td> <-- Колонка 4
  <td><a>0.0000</a></td> <-- Колонка 5
</tr>
<tr>
  <td><a>20.07.2007</a></td>
  <td><a>8:07:42</a></td>
  <td><a>internet.mts.ru</a></td>
  <td><a></a></td>
  <td><a>4</a></td>
  <td><a> 0.0141</a></td>
</tr>
</rows>'

--Create an internal representation of the XML document.
EXEC sp_xml_preparedocument @idoc OUTPUT, @doc

-- Execute a SELECT statement that uses the OPENXML rowset provider.
SELECT *
FROM OPENXML (@idoc, '/rows/tr', 2 )
WITH(
	artist nvarchar(max) '.',
	song nvarchar(max) './td
)
...
Рейтинг: 0 / 0
01.08.2007, 10:34
    #34697308
SuSa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML -> таблица
1. Это ты на чем пишешь?
2. От нас то ты чего хочешь?
...
Рейтинг: 0 / 0
01.08.2007, 10:42
    #34697327
Guest2222
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML -> таблица
На MS SQL Server 2005.
Здесь же используется XPath. Нужно извлечь узлы из XML и развернуть их в таблицу
...
Рейтинг: 0 / 0
01.08.2007, 11:41
    #34697496
qu-qu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML -> таблица
Guest2222На MS SQL Server 2005.
Здесь же используется XPath. Нужно извлечь узлы из XML и развернуть их в таблицу

Типа, так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
...
SELECT *
FROM OPENXML (@idoc, '/rows/tr', 2 )
WITH(
	artist nvarchar(max) '.',
	song1 nvarchar(max) 'td[1]',
	song2 nvarchar(max) 'td[2]',
	song3 nvarchar(max) 'td[position()=3]' /* или так */
)
То, что у вас имена и типы полей ("artist", "song") не совпадают со структурой приведенного примера HTML-таблицы - оставляю на вашей "совести"...
А вообще - XPath он и "в Африке" XPath, хоть в T-SQL его используют, хоть в XSLT, нужно вам выделить в отдельный столбец отдельный тег <td> из ряда таких же тегов - специфицируйте его по позиции (других способов пока не придумано).
...
Рейтинг: 0 / 0
01.08.2007, 12:07
    #34697584
Guest2222
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML -> таблица
Большое спасибо
...
Рейтинг: 0 / 0
02.08.2007, 14:42
    #34701390
Guest2222
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML -> таблица
А можно ли используя XPath выполнять группировки с подстчётом сумм. Как в SQL GROUP BY и SUM и COUNT?
...
Рейтинг: 0 / 0
02.08.2007, 15:58
    #34701724
belugin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML -> таблица
XML.com: Grouping With XSLT 2.0

Насколько я понял, с помошью MSXML нельзя
...
Рейтинг: 0 / 0
03.08.2007, 10:17
    #34703249
TiG
TiG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML -> таблица
Guest2222А можно ли используя XPath выполнять группировки с подстчётом сумм. Как в SQL GROUP BY и SUM и COUNT?
belugin XML.com: Grouping With XSLT 2.0

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


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