2

我们有一个将 XML 写入 XmlWriter 的方法,我们使用它直接生成 XML 流,而无需通过某种形式的 DOM。然而,有时我们确实想要创建一个 DOM。一种方法是始终构建一个 DOM 并从中流式传输(以满足这两个要求),但我们喜欢直接编写 XML 的性能。因此,我们想从 XmlWriter 构建一个 DOM。

请参阅如何在 .NET 中使用 XmlWriter 创建 XmlDocument?有关如何从 XmlWriter 创建 XmlDocument 的示例,尽管使用了稍微偏离滑雪道的代码模式。如果我想要一个 XDocument(或 XElement 子树),是否有类似的选项?

4

1 回答 1

8

看看XContainer.CreateWriter 方法

XContainer.CreateWriter 方法

创建可用于将节点添加到 XContainer 的 XmlWriter。

两者都是XDocumentXContainer XElement

例子:

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.
}
于 2013-09-03T12:51:04.403 回答