0

Hi i have the Following XML file.how do i read it and insert the data in a table using a stored procedure

<NewDataSet>
<Root RowNumber=1; answer = 1; TAnswer=null/>
<Root RowNumber=2; answer = 6; TAnswer=yes for Q 2/>
<Root RowNumber=3; answer = 9; TAnswer=null/>
<Root RowNumber=4; answer = -1; TAnswer=q 4 no suggestions/>
</NewDataSet>
Bhavik Shah
  • 2,300
  • 1
  • 17
  • 32

1 Answers1

1

Considering you have a valid xml just like the one below.

DECLARE @xml XML

SET @xml = '
<NewDataSet>
<Root RowNumber = "1" answer = "1" TAnswer = "null" />
<Root RowNumber = "2" answer = "6" TAnswer = "yes for Q 2" />
<Root RowNumber = "3" answer = "9" TAnswer = "null" />
<Root RowNumber = "4" answer = "-1" TAnswer = "q 4 no suggestions" />
</NewDataSet>'

SELECT RowNumber = T.A.value('@RowNumber', 'int'),
       answer = T.A.value('@answer', 'int'),
       TAnswer = T.A.value('@TAnswer', 'varchar(1000)')
FROM   @xml.nodes('//NewDataSet/Root') T (A) 

Note : There are two mistakes in your XML. Attributes values are not enclosed by double quotes. Then the attributes should be separated by space not by semi-colon

Pரதீப்
  • 91,748
  • 19
  • 131
  • 172
  • Thanks your output helped.Got what i was looking for.Actually the xml was provided by the developer and i had to read and insert it into the table.So asked the developer to make the changes accordingly – Gurdeep Suri Jun 19 '17 at 06:05