我在使用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作为教程。
答案 0 :(得分:1)
XmlWriter
的行为应该如此。 ConformanceLevel.Auto
指定XML编写器应根据传入的数据确定一致性检查的级别。当您不知道生成的XML是格式良好的XML文档还是片段时,此设置非常有用。在你的情况下,它切换到ConformanceLevel.Document
。 ConformanceLevel属性可用于检查特定的传入数据ConformanceLevel.Document
或ConformanceLevel.Fragment
。