的情况下使用XmlWriter.WriteEndDocument()我想知道XmlWriter.WriteStartDocument()
和XmlWriter.WriteEndDocument()
背后的原因。是否可以在不调用XmlWriter.WriteStartDocument()
我的方案,我与它的一些数据创建一个XML文档,如:
XmlWriter xmlWriter = XmlWriter.Create(file);
xmlWriter.WriteStartDocument();
// write xml elements and attributes...
xmlWriter.WriteEndDocument();
xmlWriter.Flush();
虽然序列化,XmlWriter
不会引发任何异常,如果我们跳过调用xmlWriter.WriteStartDocument()
并调用xmlWriter.WriteEndDocument()
在结束。
下面的代码片段不会引发任何错误或异常:
XmlWriter xmlWriter = XmlWriter.Create(file);
// write xml elements and attributes...
xmlWriter.WriteEndDocument();
xmlWriter.Flush();
这怎么可能?你能解释WriteStartDocument()
和WriteEndDocument()
的功能吗?
@stuartd但在C#中,它与WriteEndDocument()单独工作正常。 –
@stuartd我的问题是“为什么这两个语句不需要将xml声明写入文件?”。只需“WriteEndDocument()”就足以编写xml声明。这似乎很奇怪。 –
@stuartd在XML 1.0(这是最常用的,1.1是非常罕见的),[声明是可选的](http://stackoverflow.com/questions/7007427/does-a-valid-xml-file-require -an-XML声明)。 –