2010-11-18 7 views
4

XElement에서 이상한 동작이 있습니다. Value 속성이 새 줄 표현식을 \ n \ n 같은 유닉스 표현식으로 변경합니다. \ 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

저는 이것이 의도적이라고 생각합니다. XML은 Windows CR + LF가 아닌 LF로 새 줄을 저장합니다.

생각해 보면 xml:space="preserve"이 없으면 XML이 흰색 문자를 유지하지 않는다는 원칙과 일치합니다. 이것을 노드 속성으로 추가하여 어떤 것을 얻을 수 있는지보십시오.

+0

당신은 xml : http://www.w3schools.com/Xml/xml_syntax.asp에서 의도적으로 설계된 것입니다. 또한 LoadOptions.PreserveWhitespace Parse 메서드를 사용하여 시도했지만 동일한 동작을 얻습니다. 고마워요! – pcius

+0

또한 abc \ r \ ndef과 같은 XML에 추가하여 도움이되는지 확인하십시오. – veljkoz

관련 문제