- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我想知道 XmlWriter.WriteStartDocument()
背后的原因和 XmlWriter.WriteEndDocument()
.
在我的场景中,我正在创建一个包含一些数据的 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()
?
最佳答案
根据 the documentation对于 WriteStartDocument
,此方法写入出现在根元素之前的 XML 声明::
When overridden in a derived class, writes the XML declaration.
根据the documentation对于 WriteEndDocument
:
When overridden in a derived class, closes any open elements or attributes and puts the writer back in the Start state.
没有提到任何一个与另一个相关或依赖于另一个,事实上你的实验似乎证明了这一点。
与 WriteStartElement
和 WriteEndElement
等其他类似命名的方法对不同,调用其中一个方法而不调用另一个方法不会使您进入文档无效的状态。也就是说,我仍然建议您在编写文档的开始和结束时调用它们,因为这显然是 API 想要您做的。
顺便说一句,很少需要像这样直接使用XmlReader
和XmlWriter
。它们是非常低级的 XML API。对于大多数用例,我建议您探索 LINQ to XML 和 XmlSerializer
。
关于c# - 在不调用 XmlWriter.WriteStartDocument() 的情况下使用 XmlWriter.WriteEndDocument() 是否可行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40842172/
对于我的一个项目,我终于需要使用我的第一个多态类(std::cout 除外)。 我正在研究如何确保至少在某些情况下我有 100% 的去虚拟化调用。 这段代码是否合法可行? dynamic_cast 有
最近有一个编译问题,用这个片段说明: struct Base { }; template struct A : Base { A(){} A(Base&&) {} }; A foo()
注意:这是一个冗长的问题,需要对 MVVM“设计模式”、JSON 和 jQuery 有很好的理解.... 所以我有一个理论/主张 DHTML 中的 MVVM 是可能的 和可行的 并且想知道您是否同意/
我有一台 Mac 服务器,我正在构建 PHP 代码以允许用户上传图像、文档甚至视频文件。研究这个肯定让我很紧张,我希望上传的内容没有病毒。 自己构建一些东西会是一个巨大的挑战吗?您会这样做,还是会
根据文档,ASP.NET 项目(尚)不支持新的 PackageReference https://learn.microsoft.com/en-us/nuget/consume-packages/pa
我是一名优秀的程序员,十分优秀!