2010-03-03 2 views
7

캐리지 리턴에 민감한 응용 프로그램이 \ r \ n 또는 \ n 있습니다. XML에서 값을 전달하고 XDocument를 사용하여 캐리지 리턴 값을 \ n으로 변환하고이를 \ r \ n으로 유지하는 방법을 찾으려고합니다.XDocument.Parse를 사용할 때 캐리지 리턴을 보존하십시오.

string myVal = "1234\r\nabcd"; 
string xmlText = "<doc>" + myVal + "</doc>"; 
XDocument xDoc = XDocument.Parse(xmlText); 
Console.WriteLine("result=" + (xDoc.Element("doc").Value == myVal)); 
Console.WriteLine("result=" + (xDoc.Element("doc").Value == myVal.Replace("\r\n", "\n"))); 

결과 : XDocument.Parse에 LoadOptions.PreserveWhitespace 전달

result=False 
result=True 

답변

3

가에서하지만이 사건으로하지 나타나는 하단의 커뮤니티 콘텐츠에서 preserve insignificant 공백으로되어있다.

대신 XmlReader를 사용하여 XDocument로로드 할 수 있습니까? 그것은 훨씬 더 많은 유연성을 제공 할 수 있습니다.

+0

예 기쁨없이 PreserveWhiteSpace 옵션을 시도했습니다. XmlReader에 대해 생각해 보았지만 문자열에 독자를 사용하는 것은 과도한 것처럼 보입니다. 우아한 방법이 없다면 아마 검색을 통해 얻을 것이고 Parse에서 얻은 값을 대체 할 것입니다. – sipwiz

관련 문제