직렬화하는 동안 공백 유지(LINQ to XML)

이 문서에서는 XML 트리를 직렬화할 때 공백을 제어하는 방법을 설명합니다.

일반적인 시나리오는 들여쓴 XML을 읽고 공백 텍스트 노드 없이 메모리 내 XML 트리를 만든 다음(공백을 유지하지 않음), XML에 대한 작업을 수행하고 들여쓰기를 사용하여 XML을 저장하는 것입니다. 서식이 있는 XML을 serialize하는 경우 XML 트리의 유효 공백만 유지됩니다. 이는 LINQ to XML의 기본 동작입니다.

다른 일반적인 시나리오는 이미 의도적으로 들여쓴 XML을 읽고 수정하는 것입니다. 이 들여쓰기를 변경하려고 하지 않을 수 있습니다. LINQ to XML에서 이 작업을 수행하려면 XML을 로드하거나 구문 분석할 때 공백을 유지하고 XML을 직렬화할 때 서식 지정을 사용하지 않도록 설정합니다.

XML 트리를 직렬화하는 메서드의 공백 동작

XElementXDocument 클래스의 다음 메서드는 XML 트리를 serialize합니다. XML 트리를 파일, TextReader 또는 XmlReader로 serialize할 수 있습니다. ToString 메서드는 문자열로 serialize합니다.

이 메서드는 SaveOptions를 인수로 사용하지 않는 경우 serialize된 XML의 서식을 지정합니다(들여씁니다). 이 경우 XML 트리의 모든 무효 공백이 삭제됩니다.

이 메서드가 SaveOptions를 인수로 사용하는 경우에는 serialize된 XML의 서식을 지정하지(들여쓰지) 않도록 지정할 수 있습니다. 이 경우 XML 트리의 모든 공백이 유지됩니다.