c# - 无法更改 XmlWriter 的设置

标签 c# xml xmlwriter

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

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

但是遇到异常说Conformance Level是只读的,不能设置。

我还尝试创 build 置并让我的 XmlWriter 继承它们:

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

但是创建的 XmlWriter 实例用它自己的设置覆盖了我的设置,将一致性级别设置为文档。我怎样才能解决这个问题?我正在使用 this website作为教程。

最佳答案

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

关于c# - 无法更改 XmlWriter 的设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27570816/

相关文章:

c# - wpf拖放可视化选择项目

android - 将文本设置为粗体和斜体

c# - 添加没有命名空间的带前缀的起始元素

c# - XmlReader/Writer 给出结束元素的错误

c# - 我如何判断 .Net 3.5 垃圾收集器是否已运行?

c# - System.Collections.Generic.Dictionary foreach顺序

c# - 生成licenses.licx

c# - XML 数据库与 SQL Server 数据库

xml - 使用 Groovy 解码 JAXB

c# - 通过代码生成trx文件