2010-11-18 15 views
4

私はXElementで奇妙な動作をしています。 Valueプロパティは新しい行の式\ n \ nをunix式のような\ nに変更するようです。何故ですか?XElement Valueプロパティを r nから 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

これは設計によるものだと思います.L XMLは、Windows CR + LFではなく、LFとして新しい行を保存します。

考えてみると、xml:space="preserve"がない限りXMLは白い文字を保存しないという原則と一貫しています。それをノード属性として追加し、あなたが得るものを見てください。

+0

xmlには設計通りです:http://www.w3schools.com/Xml/xml_syntax.asp。また、私は、ParseメソッドでLoadOptions.PreserveWhitespaceを使用してみましたが、私は同じ動作を取得します。どうもありがとう! – pcius

+0

また、 abc \ r \ ndefのようにXML内に追加してみましょう。 – veljkoz

関連する問題