Quantcast
Channel: SQL.ru: Microsoft SQL Server
Viewing all articles
Browse latest Browse all 7251

список атрибутов в ноде

$
0
0
Есть такой рекорсет. В попытке распознать структуру хочется выташить имена полей.
Кроме такого велосипеда ничего на ум не приходит

DECLARE @xml XML =  
'
<access_account access_account_profile_name="admin_RIS2_YKF-16" id="16" access_username="admin" access_account_password="79a488203a462b33" access_account_default="0" access_account_createdate="2016-09-27T16:17:35.860" />
<access_account access_account_profile_name="adminAAA_RIS2_YKF-40" id="40" access_username="adminAAA" access_account_password="79a488203a462b33" access_account_default="0" access_account_createdate="2016-09-27T16:17:35.860" />
<access_account access_account_profile_name="adminZZZZ_RIS2_YKF-25" id="25" access_username="adminZZZZ" access_account_password="dcbf4783a01559e9" access_account_default="0" access_account_createdate="2016-09-27T16:17:35.860" />
'

declare @docType nvarchar(max) = (select CAST(@xml.query('(//access_account)[1]') AS nvarchar(max)))
set @docType = REPLACE(REPLACE(REPLACE(REPLACE(@docType, '<', ''), '>', ''), '/', ''), '"', '')

SELECT substring( cols, 0, CHARINDEX('=', cols )) as fldname FROM 
(
    SELECT DISTINCT cols FROM ( SELECT CAST('<A>'+ REPLACE(@docType,' ','</A><A>')+ '</A>' AS XML) AS xml_str    ) xml_tbl
        CROSS APPLY ( SELECT t.value('.', 'sysname') AS cols FROM xml_str.nodes('/A') AS x(t) ) lstTypes
)x WHERE CHARINDEX('=', cols ) > 0


Может есть команда в XPath который я просмотрел?

Viewing all articles
Browse latest Browse all 7251

Trending Articles