我对 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

谢谢!

最佳答案

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

如果您考虑一下,这与 XML 不保留白色字符的原则是一致的,除非您有 xml:space="preserve" 。尝试将其添加为节点属性,看看你会得到什么。

关于c# - 为什么 XElement Value 属性将\r\n 更改为\n?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4220243/

10-13 00:05