我们有一种将 XML 写入 XmlWriter 的方法,我们使用它直接生成 XML 流,而无需通过某种形式的 DOM。然而,有些情况下我们确实想要创建一个 DOM。一种方法是始终构建 DOM 并从中流式传输(以满足这两种要求),但我们喜欢直接编写 XML 的性能。因此,我们希望从 XmlWriter 构建 DOM。
参见 How to create a XmlDocument using XmlWriter in .NET?有关如何从 XmlWriter 创建 XmlDocument 的示例,尽管使用了稍微偏离轨道的代码模式。如果我想要 XDocument(或 XElement 子树),是否有类似的选项?
最佳答案
看看 XContainer.CreateWriter Method :
XContainer.CreateWriter Method
Creates an XmlWriter that can be used to add nodes to the XContainer.
XDocument
和 XElement
都是 XContainer。
示例:
XDocument doc = new XDocument();
using (XmlWriter writer = doc.CreateWriter())
{
// Do this directly
writer.WriteStartDocument();
writer.WriteStartElement("root");
writer.WriteElementString("foo", "bar");
writer.WriteEndElement();
writer.WriteEndDocument();
// or anything else you want to with writer, like calling functions etc.
}
关于c# - 如何在给定 XmlWriter 的情况下创建 XDocument?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18592710/