2010-03-03 6 views
7

Ich habe eine Anwendung, die empfindlich auf einen Wagenrücklauf ist, der \ r \ n oder \ n ist. Ich gebe einen Wert in XML weiter, und wenn ich ihn mit XDocument analysiere, wird der Wagenrücklaufwert in \ n konvertiert, und ich versuche einen Weg zu finden, ihn als \ r \ n zu erhalten.Wagenrücklauf bei Verwendung von XDocument.Parse beibehalten

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"))); 

Ergebnisse:

result=False 
result=True 

Antwort

3

zu XDocument.Parse Passing LoadOptions.PreserveWhitespace auf preserve insignificant Leerzeichen sollten aus, sondern von den Community-Inhalten an der Unterseite es nicht der Fall zu sein scheint.

Können Sie stattdessen mit einem XmlReader in das XDocument laden? Das könnte viel mehr Flexibilität bieten.

+0

Ja, ich habe versucht, die PreserveWhiteSpace-Option ohne Freude. Ich hatte über XmlReader nachgedacht, aber es scheint übertrieben zu sein, einen Leser an einer Schnur zu benutzen. Wenn es keinen eleganten Weg gibt, werde ich wahrscheinlich mit einer Suche und einem Ersatz für den Wert, den ich aus dem Parse erhalte, einfach durchkommen. – sipwiz

Verwandte Themen