J'ai une méthode qui retourne un peu xml dans un flux de mémoireComment ajouter de nouveaux éléments à Xml d'un flux
private MemoryStream GetXml()
{
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
using (MemoryStream memoryStream = new MemoryStream())
{
using (XmlWriter writer = XmlWriter.Create(memoryStream, settings))
{
writer.WriteStartDocument();
writer.WriteStartElement("root");
writer.WriteStartElement("element");
writer.WriteString("content");
writer.WriteEndElement();
writer.WriteEndElement();
writer.WriteEndDocument();
writer.Flush();
}
return memoryStream;
}
}
Dans cet exemple, le format du fichier XML sera:
<?xml version="1.0" encoding="utf-8"?>
<root>
<element>content</element>
</root>
Comment puis-je insérer un nouvel élément sous la racine par exemple:
<?xml version="1.0" encoding="utf-8"?>
<root>
<element>content</element>
----->New element here <------
</root>
EDIT:
Aussi s'il vous plaît suggérer la méthode la plus efficace que le retour d'un MemoryStream
peut ne pas être la meilleure solution. Le xml final sera passé à un HttpHandler
personnalisé, alors quelles sont les meilleures options pour l'écriture de la sortie?
context.Response.Write
vs context.Response.OutputStream
En effet je pourrais retourner un XDocument si cela fait qu'il est plus facile d'injecter des éléments supplémentaires. Pas vraiment sûr de ce qui est le mieux pour garder les frais généraux bas. D'où ma raison initiale de retourner un flux. –
Votre dernière édition (statique XDocument GetXml()) est en fait comme quelque chose que je viens d'écrire et de tester, alors oui, cela fonctionne. Bon travail. –