2010-08-04 5 views
0

.NET에서 XmlWriter를 사용하여 XmlDocument를 저장하고 있습니다. 그러나 InnerText가있는 모든 요소는 주변 캐리지 리턴 문자로 작성됩니다.System.Xml.XmlWriter를 사용하여 xml 요소에 InnerText를 쓸 때 캐리지 리턴을 피하십시오.

XmlWriterSettings를 사용하여 문자를 쓰려고했지만 아직 행운이 없습니다.

 XmlDocument outXml = new XmlDocument(); 
     outXml.AppendChild ....... 
     XmlWriterSettings sets = new XmlWriterSettings(); 
     sets.Encoding = encoding; 
     sets.Indent = true; 
     XmlWriter xwriter = XmlWriter.Create(file, sets); 
     outXml.Save(xwriter); 
     xwriter.Close(); 

XML 출력이 같다 :

<String Id="msierrXmlFileFailedSave" Overridable="yes"> 
    Fehler beim Speichern der Einstellungen-Datei. 
    </String> 

같아야 필요한 XML 출력 :

<String Id="msierrXmlFileFailedSave" Overridable="yes">Fehler beim Speichern der Einstellungen-Datei.</String> 

가 여기

는 사용 코드 조각 엘리먼트 안에 캐리지 리턴이 쓰여지는 것을 피하는 방법은 무엇입니까?

PD :이 문제에 대해서는 opposite question을 보았습니다. 해결책은이 경우에 적용되지 않습니다.

미리 감사드립니다.

Allan.c

+0

[XMLDocument.Save 요소가 비어있을 때 XML에 마차를 반환 추가]의 중복 가능성 (http://stackoverflow.com/questions/19258810/xmldocument-save-adds-return-carriages-to-xml-when -elements-are-blank) – Alex

답변

1

저장을 호출하기 전에 XmlDocument.PreserveWhitespace 속성을 설정하는 것이 좋습니다. 또 다른 옵션은 요소의 텍스트 내용이 정확히 보존되어야하는 내부 텍스트 대신 CData 섹션을 사용하는 것입니다. 문서에서

: PreserveWhitespace가 호출 로드 또는 LoadXml, 노드가 유지됩니다 공백 전에 사실이라면

; 그렇지 않은 경우 이 속성이 false이면 중요한 공백 이 보존되고 공백 은 유효하지 않습니다.

저장 전에 PreserveWhitespace가 true 인 경우 문서의 공백이 출력에 보존됩니다. 그렇지 않으면이 속성이 false 인 경우 XmlDocument가 출력을 자동 들여 씁니다.

+0

우수, 문제가 해결되었습니다. –

관련 문제