我正在使用SyndicationFeed类生成Atom提要和Atom10FeedFormatter来序列化它。我希望能够在文件写入磁盘时在元素之间添加换行符。我意识到提要读者不关心,但是当我通过http://feedvalidator.org/运行我的文档时,它将整个文档视为一行,这使得它成为一个PITA,可以看到我的错误在哪里,因为每个错误都在“行” 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();
答案 0 :(得分:2)
XmlWriter类有一个Settings属性,允许您以多种方式格式化xml,包括行格式化和缩进。
答案 1 :(得分:2)
Joseph's answer因为指向正确的班级而获得了荣誉。以下是其他任何寻找代码的人的具体细节。
我所要做的就是告诉XmlWriter对象缩进输出。通过将settings对象的Indent属性更改为true可以轻松完成。所以我的原始代码序列化feed(上面)编辑如下:
XmlWriterSettings WriterSettings = new XmlWriterSettings();
WriterSettings.Indent = true;
XmlWriter atomWriter = XmlWriter.Create(@"atom.xml", WriterSettings);
Atom10FeedFormatter atomFormatter = new Atom10FeedFormatter(TheFeed);
atomFormatter.WriteTo(atomWriter);
atomWriter.Close();