Return HttpResponseMessage with XML Data

I created WebAPI using .NET. The API reads / writes data from an XML file. I have the following code and it returns the corresponding elements without a root element. How do I get it back with root?

API controller:

[HttpGet] public HttpResponseMessage GetPerson(int personId) { var doc = XDocument.Load(path); var result = doc.Element("Persons") .Elements("Person") .Single(x => (int)x.Element("PersonID") == personId); return new HttpResponseMessage() { Content = new StringContent(string.Concat(result), Encoding.UTF8, "application/xml") }; } 

Result:

 <Person> <PersonID>1</PersonID> <UserName>b</UserName> <Thumbnail /> </Person><Person> <PersonID>2</PersonID> <UserName>b</UserName> <Thumbnail /> </Person><Person> <PersonID>4</PersonID> <UserName>a</UserName> <Thumbnail>a</Thumbnail> </Person> 
+4
source share
1 answer

You can wrap the result in the root element:

 [HttpGet] public HttpResponseMessage GetPerson(int personId) { var doc = XDocument.Load(path); var result = doc .Element("Persons") .Elements("Person") .Single(x => (int)x.Element("PersonID") == personId); var xml = new XElement("TheRootNode", result).ToString(); return new HttpResponseMessage { Content = new StringContent(xml, Encoding.UTF8, "application/xml") }; } 
+13
source

All Articles