2009-05-12 4 views
2

SyndicationFeed 클래스를 사용하여 Atom 피드를 생성하고 Atom10FeedFormatter를 사용하여 직렬화합니다. 파일이 디스크에 기록 될 때 요소 사이에 줄 바꿈을 추가하고 싶습니다. 나는 피드 독자가 신경 쓰지 않는다는 것을 알고 있지만, http://feedvalidator.org/을 통해 내 문서를 실행할 때 전체 문서를 한 줄로 처리하므로 모든 오류가 "줄 1"에 있기 때문에 내 실수가 어디에 있는지를 PITA로 볼 수 있습니다. 예를 들어SyndicationFeed 객체의 직렬화 된 출력에 줄 바꿈을 어떻게 추가합니까?

, 대신에이 같은 출력의 :

<?xml version="1.0" encoding="utf-8"?> 
<feed xmlns="http://www.w3.org/2005/Atom"> 
    <title type="text">Title For My Feed</title> 
    <subtitle type="text">Subtitle for my feed.</subtitle> 
    <id>uuid:d2ad3f53-6f1a-4495-ba92-ab3231413f97;id=1</id> 
    <updated>2009-05-12T19:42:56Z</updated> 
    <author> 
    <name>Matt</name> 
    ... 

여기에 내가 직렬화 사용하고 코드가 단지에있다 :

<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">Title For My Feed</title><subtitle type="text">Subtitle for my feed.</subtitle><id>uuid:d2ad3f53-6f1a-4495-ba92-ab3231413f97;id=1</id><updated>2009-05-12T19:42:56Z</updated><author><name>Matt</name>... 

이 같은 출력 뭔가를 좀하고 싶습니다 중요한 경우 :

XmlWriter atomWriter = XmlWriter.Create(@"atom.xml"); 
Atom10FeedFormatter atomFormatter = new Atom10FeedFormatter(TheFeed); 
atomFormatter.WriteTo(atomWriter); 
atomWriter.Close(); 

답변

2

XmlWriter 클래스에는 xml을 숫자로 서식 지정할 수있는 Settings 속성이 있습니다. 줄 서식 및 들여 쓰기를 포함하여 여러 가지 방법이 있습니다.

여기에 MSDN reference이 있습니다.

2

Joseph's answer은 나를 올바른 클래스로 가리키는 크레딧을 얻습니다. 뒤에 오는 무엇이 teh codez를 찾는 누군가를위한 특성이다.

내가 할 일은 XmlWriter 개체에 들여 씁니다. 설정 개체의 들여 쓰기 속성을 true로 변경하면 쉽게 완료 할 수 있습니다. 피드 (위)를 직렬화하는 원래 코드는 다음과 같이 수정되었습니다.

XmlWriterSettings WriterSettings = new XmlWriterSettings(); 
WriterSettings.Indent = true; 

XmlWriter atomWriter = XmlWriter.Create(@"atom.xml", WriterSettings); 
Atom10FeedFormatter atomFormatter = new Atom10FeedFormatter(TheFeed); 
atomFormatter.WriteTo(atomWriter); 
atomWriter.Close(); 
관련 문제