2010-08-04 2 views
0

J'utilise XmlWriter pour enregistrer un XmlDocument dans .Net. Cependant, tous les éléments qui ont InnerText sont écrits avec des caractères de retour chariot adjacents.Évite le retour chariot lors de l'écriture d'InnerText dans des éléments XML en utilisant System.Xml.XmlWriter

J'ai essayé d'utiliser XmlWriterSettings pour éviter l'écriture de ces caractères, mais pas encore de chance.

Ici, il est un morceau de code utilisé:

 XmlDocument outXml = new XmlDocument(); 
     outXml.AppendChild ....... 
     XmlWriterSettings sets = new XmlWriterSettings(); 
     sets.Encoding = encoding; 
     sets.Indent = true; 
     XmlWriter xwriter = XmlWriter.Create(file, sets); 
     outXml.Save(xwriter); 
     xwriter.Close(); 

La sortie xml est comme:

<String Id="msierrXmlFileFailedSave" Overridable="yes"> 
    Fehler beim Speichern der Einstellungen-Datei. 
    </String> 

La sortie xml nécessaire devrait être comme:

<String Id="msierrXmlFileFailedSave" Overridable="yes">Fehler beim Speichern der Einstellungen-Datei.</String> 

est-il un moyen d'éviter l'écriture de ces retours chariot à l'intérieur des éléments?

PD: J'ai vu un opposite question à propos de ce problème, mais la solution ne s'applique pas à ce cas.

Merci d'avance.

Allan.c

+0

double possible de [XMLDocument.Save ajoute un retour à des chariots XML lorsque les éléments sont vides] (http://stackoverflow.com/questions/19258810/xmldocument-save-adds-return-carriages-to-xml-when -elements-are-blank) – Alex

Répondre

1

Vous voulez définir la propriété XmlDocument.PreserveWhitespace avant d'appeler Enregistrer. Une autre option consiste à utiliser des sections CData au lieu du texte interne où le contenu du texte des éléments doit être préservé exactement.

De la documentation:

Si PreserveWhitespace est vrai avant charge ou LoadXml est appelé, l'espace blanc nœuds sont conservés; sinon, si cette propriété est false, l'espace blanc est préservé, l'espace blanc ne l'est pas.

Si PreserveWhitespace a la valeur true avant que Save soit appelé, les espaces vides du document sont conservés dans la sortie; sinon, si cette propriété est fausse, XmlDocument annule automatiquement la sortie.

+0

Excellent, il a résolu le problème. –

Questions connexes