Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Preserve carriage return when using XDocument.Parse

Tags:

c#

linq-to-xml

I have an application that is sensitive to a carriage return being \r\n or \n. I'm passing around a value in XML and when I parse it using XDocument the carriage retrun value is being converted to \n and I'm trying to find a way to keep it preserved as \r\n.

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

Results:

result=False
result=True
like image 884
sipsorcery Avatar asked Mar 03 '10 06:03

sipsorcery


1 Answers

Passing LoadOptions.PreserveWhitespace to XDocument.Parse is supposed to preserve insignificant whitespace from but from the community content at the bottom it appears not to be the case.

Can you load into the XDocument using an XmlReader instead? That may offer much more flexibility.

like image 138
Josh Avatar answered Nov 06 '22 03:11

Josh