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