I would like to parse XML using SQL query. Below is the query and XML. Please find below current result and expected result screen shots. Its taking only one value from nested nodes. Please suggest
DECLARE @xml XML =
'<FileGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<FileGroup>
<FileName>Test1</FileName>
<Files>
<File>
<FilePath>\\Server\Test1</FilePath>
<FileGUID>3006989A-725E-40E8-BAF7-A094CB710AC3</FileGUID>
<DependentOnFileNames></DependentOnFileNames>
</File>
<File>
<FilePath>\\Server\Test2</FilePath>
<FileGUID>A584CE87-CC76-484E-ACE4-53C6CAD27B7F</FileGUID>
<DependentOnFileNames></DependentOnFileNames>
</File>
<File>
<FilePath>\\Server\Test3</FilePath>
<FileGUID>727A6BBE-E820-4431-9958-93D0863F65B8</FileGUID>
<Comments></Comments>
<DependentOnFileNames>
<FileGUID>3006989A-725E-40E8-BAF7-A094CB710AC3</FileGUID>
<FileGUID>A584CE87-CC76-484E-ACE4-53C6CAD27B7F</FileGUID>
</DependentOnFileNames>
</File>
</Files>
</FileGroup>
<FileGroup>
<FileName>Test2</FileName>
<Files>
<File>
<FilePath>\\Server\Test4</FilePath>
<FileGUID>EA422762-58CD-423D-92D4-1DC18A312F48</FileGUID>
<DependentOnFileNames></DependentOnFileNames>
</File>
</Files>
</FileGroup>
</FileGroups>'
SELECT
FileGroup.value('FileName[1]', 'VARCHAR(1000)') FileName,
tbl1.Files.value('FilePath[1]', 'VARCHAR(1000)') FilePath,
tbl2.DependentOnFileNames.value('FileGUID[1]', 'UNIQUEIDENTIFIER') DependentFileGUID
FROM @xml.nodes('/FileGroups/FileGroup') tbl(FileGroup)
CROSS APPLY tbl.FileGroup.nodes('Files/File') tbl1(Files)
CROSS APPLY tbl1.Files.nodes('DependentOnFileNames') tbl2(DependentOnFileNames)