2

我正在使用SyndicationFeed类来生成一个 Atom 提要和一个 Atom10FeedFormatter 来对其进行序列化。当文件写入磁盘时,我希望能够在元素之间添加换行符。我意识到提要读者不在乎,但是当我通过http://feedvalidator.org/运行我的文档时,它会将整个文档视为一行,这使得它可以查看我的错误在哪里,因为每个错误都是在“第 1 行”。

例如,而不是这样的输出:

<?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();
4

2 回答 2

2

XmlWriter 类有一个 Settings 属性,可让您以多种方式格式化 xml,包括行格式和缩进。

这是MSDN 参考资料

于 2009-05-12T20:48:34.580 回答
2

约瑟夫的回答因将我指向正确的课程而受到赞誉。以下是寻找 teh codez 的其他人的详细信息。

我所要做的就是告诉 XmlWriter 对象缩进输出。这很容易通过将设置对象的 Indent 属性更改为 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();
于 2009-05-12T22:07:15.230 回答