我对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
谢谢!
答案 0 :(得分:1)
我相信这是设计的 - XML将新行存储为LF,而不是Windows CR + LF。
如果你仔细想想,除非你有xml:space="preserve"
,否则它与XML不保留白色字符的原则是一致的。尝试将其添加为节点属性并查看您将获得的内容。