2010-03-03 15 views
7

J'ai une application qui est sensible à un retour de chariot étant \ r \ n ou \ n. Je passe une valeur en XML et quand je l'analyse en utilisant XDocument, la valeur de retransmission de chariot est convertie en \ n et j'essaie de trouver un moyen de la conserver en tant que \ r \ n.Conserver le retour chariot lors de l'utilisation de XDocument.Parse

string myVal = "1234\r\nabcd"; 
string xmlText = "<doc>" + myVal + "</doc>"; 
XDocument xDoc = XDocument.Parse(xmlText); 
Console.WriteLine("result=" + (xDoc.Element("doc").Value == myVal)); 
Console.WriteLine("result=" + (xDoc.Element("doc").Value == myVal.Replace("\r\n", "\n"))); 

Résultats:

result=False 
result=True 

Répondre

3

Passing LoadOptions.PreserveWhitespace à XDocument.Parse est censé preserve insignificant les espaces blancs, mais du contenu communautaire au fond, il ne semble pas être le cas.

Pouvez-vous charger dans le XDocument en utilisant un XmlReader à la place? Cela peut offrir beaucoup plus de flexibilité.

+0

Ouais j'ai essayé l'option PreserveWhiteSpace sans joie. J'avais pensé à XmlReader, mais il semble que ce soit excessif d'utiliser un lecteur sur une chaîne. S'il n'y a pas de manière élégante, je vais probablement me contenter d'une recherche et remplacer la valeur que je reçois de l'analyse. – sipwiz

Questions connexes