gpt4 book ai didi

c# - 缺少根元素 - 使用 XmlTextWriter 创建 Xmldocument

转载 作者:数据小太阳 更新时间:2023-10-29 01:46:51 24 4
gpt4 key购买 nike

我有以下代码,它在 doc.Load() 期间吐出“根元素丢失”。

MemoryStream stream = new MemoryStream();
XmlTextWriter xmlWriter = new XmlTextWriter(stream, Encoding.UTF8);
xmlWriter.Formatting = System.Xml.Formatting.Indented;
xmlWriter.WriteStartDocument();
xmlWriter.WriteStartElement("Root");
XmlDocument doc = new XmlDocument();
stream.Position = 0;
doc.Load(stream);
xmlWriter.Close();

我无法弄清楚这个问题。有什么见解吗?

最佳答案

你还没有刷新 xmlWriter ,所以它很可能还没有写出任何东西。此外,您永远不会完成根元素,所以即使它已经写出

<Root>

它不会写结束标记。您正在尝试将其加载为完整文档

无论如何,我不确定 XmlWriter 实际上 在什么时候写出元素的开始部分 - 不要忘记它也可能具有要写入的属性。它最多可以用你得到的代码写出 <Root .

这是一个完整的有效程序:

using System;
using System.IO;
using System.Text;
using System.Xml;

class Test
{
static void Main(string[] args)
{
using (MemoryStream stream = new MemoryStream())
{
XmlTextWriter xmlWriter = new XmlTextWriter(stream, Encoding.UTF8);
xmlWriter.Formatting = System.Xml.Formatting.Indented;
xmlWriter.WriteStartDocument();
xmlWriter.WriteStartElement("Root");
xmlWriter.WriteEndElement();
xmlWriter.Flush();

XmlDocument doc = new XmlDocument();
stream.Position = 0;
doc.Load(stream);
doc.Save(Console.Out);
}
}
}

(请注意,我没有调用 WriteEndDocument - 这似乎只有在您仍有开放元素或属性时才有必要。)

关于c# - 缺少根元素 - 使用 XmlTextWriter 创建 Xmldocument,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3247312/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com