c# - 如何在给定 XmlWriter 的情况下创建 XDocument?

标签 c# xml linq-to-xml xelement xmlwriter

我们有一种将 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.

XDocumentXElement 都是 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/

相关文章:

xml - 限制 XSD 中的特定数字

c# - 使用 LINQ to XML 解析深层嵌套属性时遇到问题

c# - 获取具有相同类的第二个节点

c# - ObjectStateManager 无法使用相同的键跟踪多个对象

java - 如何搜索xml中的元素?

java - 泛型类的 XStream 反序列化返回 java.lang.Object

c# - 使用 XDocument 读取 xml 文件

c# - XslCompiledTransform 换行符,如何输入它们?

c# - 散列对象集 C#

c# - 如何为数据理论提供 List<int> ? "InlineData"