Я попытался выполнить синтаксический анализ xml с помощью sql.Как выбрать из XML с помощью T-SQL и XQuery
И я пытался выбрать из Skill
тега, но только одна строка показывает, пожалуйста, любой помощи заранее спасибо
Мой формат XML, как показано ниже
declare @UserDetails XML
set @UserDetails='
<Registration>
<objUserBasicData>
<User_Id>0</User_Id>
<UserType>0</UserType>
<UserName>[email protected]</UserName>
<Password>user123</Password>
<LastLoginTime>2015-08-08T18:22:53.9953905+05:30</LastLoginTime>
<IsActive>true</IsActive>
<CreatedBy>0</CreatedBy>
<CreatedOn>2015-08-08T18:22:53.9953905+05:30</CreatedOn>
<ModifiedBy>0</ModifiedBy>
<ModifiedOn>2015-08-08T18:22:53.9953905+05:30</ModifiedOn>
</objUserBasicData>
<objUserDetails>
<UserDetails_Id>0</UserDetails_Id>
<User_Id>0</User_Id>
<FirstName>test</FirstName>
<MiddleName />
<LastName>test</LastName>
<ContactName />
<Email>[email protected]</Email>
<AlternativeEmail />
<RegisterDate>2015-08-08T18:22:54.0164133+05:30</RegisterDate>
<Address1 />
<Address2 />
<Country>0</Country>
<State>0</State>
<City>1</City>
<PostCode />
<HomePhone />
<Mobile>1231231232</Mobile>
<Fax />
<Marketing>false</Marketing>
<HasCV>false</HasCV>
<CVName>564195d7-4dfa-42e0-abc1-ef611be588a2.doc</CVName>
<HasJobsByEmail>false</HasJobsByEmail>
<Website />
<CreatedBy>0</CreatedBy>
<CreatedOn>2015-08-08T18:22:54.0164133+05:30</CreatedOn>
<ModifiedBy>0</ModifiedBy>
<ModifiedOn>2015-08-08T18:22:54.0164133+05:30</ModifiedOn>
<DateOfBirth>2015-08-10T00:00:00</DateOfBirth>
<CurrentJobTitle>test</CurrentJobTitle>
<Career_Id>2</Career_Id>
<PrefferedLocation>1</PrefferedLocation>
<ExperienceInYears>5</ExperienceInYears>
<Gender>1</Gender>
</objUserDetails>
<Skills>
<int>2</int>
<int>1</int>
</Skills>
</Registration>'
Я использовал запрос для выбора данные
SELECT
TEMPTABLE.UserData.value('int[1]','int') AS int
FROM
@UserDetails.nodes('/Registration/Skills')AS TEMPTABLE(UserData)
он получает результат в виде
int
-----------
2
1
отсутствует
Я использовал
DECLARE @XMLDocPointer INT
EXEC sp_xml_preparedocument @XMLDocPointer OUTPUT, @UserDetails
SELECT *
FROM OPENXML(@XMLDocPointer,'/Registration/Skills',3)
WITH ([int] INT)
EXEC sp_xml_removedocument @XMLDocPointer
Опять же результат тот же
int
-----------
2
что я должен сделать получить результат как
int
-----------
2
1
Большое спасибо Он работал, я пытался 'ВЫБРАТЬ TEMPTABLE.UserData.value ('INT [ 1] ',' int ') AS int FROM @ UserDetails.nodes ('/Registration/Skills/int ') AS TEMPTABLE (UserData) ', но он получил нулевое значение. –