无法更改XmlWriter的设置

时间:2014-12-19 17:15:33

标签: c# xml xmlwriter

我在使用XmlWriter类时遇到了一些麻烦。我使用XmlWriter.Create()方法创建并实例化它,但是当我这样做时它变成了一个类型XmlWellFormedWriter。我希望能够将XML片段写入文件,但是当我尝试这样做时,我遇到一个异常,它告诉我将一致性级别设置为Auto或Fragment。我试图在实例化对象后更改设置:

XmlWriter writer = XmlWriter.Create(filepath);
writer.settings.ConformanceLevel = ConformanceLevel.Auto;

但我遇到一个例外,说一致性级别是只读的,无法设置。

我也尝试过创建设置并让我的XmlWriter继承它们:

XmlWriterSettings settings = new XmlWriterSettings();
settings.ConformanceLevel = ConformanceLevel.Auto;
XmlWriter writer = XmlWriter.Create(filepath, settings);

但是创建的XmlWriter实例会使用自己的设置覆盖我的设置,将Conformance级别设置为Document。我怎样才能解决这个问题?我使用this website作为教程。

1 个答案:

答案 0 :(得分:1)

XmlWriter的行为应该如此。 ConformanceLevel.Auto指定XML编写器应根据传入的数据确定一致性检查的级别。当您不知道生成的XML是格式良好的XML文档还是片段时,此设置非常有用。在你的情况下,它切换到ConformanceLevel.Document。 ConformanceLevel属性可用于检查特定的传入数据ConformanceLevel.DocumentConformanceLevel.Fragment