为什么XElement Value属性将\ r \ n更改为\ n?

时间:2010-11-18 22:24:41

标签: c# .net xml

我对XElement有一种奇怪的行为。似乎Value属性将新行表达式\ r \ n更改为unix,如表达式\ n。那是为什么?

string valueString = "abc\r\ndef";
string xmlString = "<desc>abc\r\ndef</desc>";
XElement xElement = XElement.Parse(xmlString);

string toString = xElement.ToString();    //as expected same value as xmlString
string xElementValue = xElement.Value;    //contains abc\ndef instead of abc\r\ndef

谢谢!

1 个答案:

答案 0 :(得分:1)

我相信这是设计的 - XML将新行存储为LF,而不是Windows CR + LF。

如果你仔细想想,除非你有xml:space="preserve",否则它与XML不保留白色字符的原则是一致的。尝试将其添加为节点属性并查看您将获得的内容。