Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / XML парсинг / 6 сообщений из 6, страница 1 из 1
12.03.2018, 12:50
    #39613352
iroquai
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML парсинг
Подскажите пожалуйста...
Необходимо получить список пользователей и ролей по каждой папке отчётов Reporting Service. Описание списка ролей я смог найти только в столбце XMLDescription таблицы SecData базы ReportServer.

Код: xml
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.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
<Policies>	
	<Policy>
			<GroupUserName>
				MYDOMAIN\DEVPROG1
			</GroupUserName>
			<GroupUserId>
			AQUAAAAAAAUVAAAA/TdCQBroe1YH5TsrpC4AAA==
			</GroupUserId>
			<Roles>
				<Role>
					<Name>
						MS Analyst
					</Name>
				</Role>
			</Roles>
		</Policy>
		<Policy>
			<GroupUserName>
				MYDOMAIN\DEVPROG2
			</GroupUserName>
			<GroupUserId>
				AQUAAAAAAAUVAAAA/TdCQBroe1YH5Tsr3WAAAA==
			</GroupUserId>
			<Roles>
				<Role>
					<Name>
						Browser
					</Name>
				</Role>
				<Role>
					<Name>
						Content Manager
					</Name>
				</Role>
				<Role>
					<Name>
						MS Analyst
					</Name>
				</Role>
			</Roles>
		</Policy>
	</Policies>	




Подскажите, как прочитать отсюда имя пользователя (содержимое тэга /Policies/Policy/GroupUserName) и все относящиеся к нему роли (содержимое тэгов /Policies/Policy/Roles/Role/Name)?
...
Рейтинг: 0 / 0
12.03.2018, 13:21
    #39613390
Ilnur26
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML парсинг
iroquai,

Код: sql
1.
2.
3.
4.
5.
select 
	p.n.value('GroupUserName[1]', 'varchar(255)')
,	r.n.value('Name[1]', 'varchar(255)')
from @xml.nodes('/Policies/Policy') p(n)
cross apply p.n.nodes('Roles/Role') as r(n)
...
Рейтинг: 0 / 0
12.03.2018, 13:44
    #39613421
iroquai
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML парсинг
Спасибо огромное!
...
Рейтинг: 0 / 0
12.03.2018, 13:51
    #39613432
buser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML парсинг
iroquai, или так
Код: sql
1.
2.
3.
4.
select 
	 n.v.value('../../../GroupUserName[1]', 'nvarchar(50)')
	,n.v.value('.', 'nvarchar(50)')
from @xml.nodes('//Policy/Roles/Role/Name') n(v)
...
Рейтинг: 0 / 0
12.03.2018, 14:27
    #39613482
iroquai
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML парсинг
А как сделать тоже самое не с переменной, а с XML столбцом таблицы?
...
Рейтинг: 0 / 0
12.03.2018, 14:53
    #39613501
buser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML парсинг
iroquai, через cross/outer apply
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / XML парсинг / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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