Voici comment je convertis actuellement XMLDocument en chaîne
StringWriter stringWriter = new StringWriter();
XmlTextWriter xmlTextWriter = new XmlTextWriter(stringWriter);
xmlDoc.WriteTo(xmlTextWriter);
return stringWriter.ToString();
Le problème avec cette méthode est que si j'ai " ((guillemets) que j'ai dans les attributs) elle leur échappe.
Par exemple:
<Campaign name="ABC">
</Campaign>
Ci-dessus est le XML attendu. Mais ça revient
<Campaign name=\"ABC\">
</Campaign>
Je peux faire String.Replace "\" mais cette méthode est-elle correcte? Est-ce qu'il y a des effets secondaires? Cela fonctionnera-t-il correctement si le XML lui-même contient un "\"
using
blocs et nonXmlTextWriter
.Flush
, même si un appel àClose
ou simplement la fermeture duxmlTextWriter
using
bloc accomplirait la même chose.En supposant que xmlDoc est un objet XmlDocument qui ne va pas avec xmlDoc.OuterXml?
La propriété OuterXml renvoie une version chaîne du xml.
la source
Si vous utilisez la
Windows.Data.Xml.Dom.XmlDocument
version deXmlDocument
(utilisée dans les applications UWP par exemple), vous pouvez utiliseryourXmlDocument.GetXml()
pour obtenir le XML sous forme de chaîne.la source
Comme méthode d'extension:
Maintenant, utilisez simplement:
la source
"
est affiché comme\"
dans le débogueur, mais les données sont correctes dans la chaîne et vous n'avez rien à remplacer. Essayez de vider votre chaîne dans un fichier et vous remarquerez que la chaîne est correcte.la source