2010-03-03 14 views
7

Tengo una aplicación que es sensible a un retorno de carro siendo \ r \ n o \ n. Estoy pasando un valor en XML y cuando lo analizo usando XDocument, el valor de retrieval del carro se convierte a \ n y estoy tratando de encontrar una manera de mantenerlo como \ r \ n.Conservar el retorno de carro cuando se usa 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"))); 

Resultados:

result=False 
result=True 

Respuesta

3

LoadOptions.PreserveWhitespace Pasando a XDocument.Parse se supone que los espacios en blanco de preserve insignificant sino del contenido de la comunidad en la parte inferior que no parece ser el caso.

¿Se puede cargar en el XDocument utilizando un XmlReader? Eso puede ofrecer mucha más flexibilidad.

+0

Sí Probé la opción PreserveWhiteSpace sin alegría. Había pensado en XmlReader, pero parece exagerado utilizar un lector en una cadena. Si no hay una manera elegante, probablemente me salga con una búsqueda y reemplazo en el valor que obtengo del Parse. – sipwiz

Cuestiones relacionadas