You can use
ds.WriteXml, but that will require you to have a Stream to put the output into. If you want the output in a string, try this extension method:public static class Extensions
{
public static string ToXml(this DataSet ds)
{
using (var memoryStream = new MemoryStream())
{
using (TextWriter streamWriter = new StreamWriter(memoryStream))
{
var xmlSerializer = new XmlSerializer(typeof(DataSet));
xmlSerializer.Serialize(streamWriter, ds);
return Encoding.UTF8.GetString(memoryStream.ToArray());
}
}
}
}
USAGE:
var xmlString = ds.ToXml();
// OR
Response.Write(ds.ToXml());
OR
Simply use Dataset.getXml():
doc.LoadXml(ds.GetXml());
In StoredProcedure
DECLARE @XMLData XML SET @XMLData = '<STUDENTS> <STUDENT> <StudentID>1</StudentID> <Name>John Smith</Name> <Marks>200</Marks> </STUDENT> <STUDENT> <StudentID>2</StudentID> <Name>Mark Johnson</Name> <Marks>300</Marks> </STUDENT> <STUDENT> <StudentID>3</StudentID> <Name>Nitin Tyagi</Name> <Marks>400</Marks> </STUDENT> </STUDENTS>' SELECT StudentID = Node.Data.value('(StudentID/text())[1]', 'INT'), [Name] = Node.Data.value('(Name/text())[1]', 'VARCHAR(MAX)'), [Marks] = Node.Data.value('(Marks/text())[1]', 'INT') FROM @XMLData.nodes('/STUDENTS/STUDENT') Node(Data)
No comments:
Post a Comment