Je ne peux pas attacher une déclaration xml tout en retournant du xml en utilisant ActionResult. Je le vois inclus pendant le débogage jusqu'à la ligne à laquelle il retourne du xml dans le code ci-dessous mais ne s'affiche pas sur le web.
Ce que je fais actuellement:
- Obtenir du Xml depuis Sql Server en utilisant XML PATH.
-
Retourner une chaîne xml en utilisant
XML Reader
:public XmlDocumentResult XmlData() { String s = "" + "\n" + this.GetData(); byte[] encodedString = Encoding.UTF8.GetBytes(s); MemoryStream ms = new MemoryStream(encodedString); ms.Flush(); ms.Position = 0; XmlDocument doc = new XmlDocument(); doc.Load(ms); return new XmlDocumentResult { XmlDocument = doc }; } public class XmlDocumentResult : ContentResult { public XmlDocument XmlDocument { get; set; } public override void ExecuteResult(ControllerContext context) { if (XmlDocument == null) return; Content = XmlDocument.OuterXml; ContentType = "text/xml"; base.ExecuteResult(context); } }
J'ai essayé les extraits de code suivants de Stackoverflow:
XmlDeclaration xmldecl;
xmldecl = xmlDocument.CreateXmlDeclaration("1.0", "UTF-8", null);
XmlElement root = xmlDocument.DocumentElement;
xmlDocument.InsertBefore(xmldecl, root);
XmlNode docNode = xml.CreateXmlDeclaration("1.0", "UTF-8", null);
xml.AppendChild(docNode);