C# 为XmlDocument设置InnerXml会导致缺少结束标记
最后,结果是:C# 为XmlDocument设置InnerXml会导致缺少结束标记,c#,.net,xml,xmldocument,innerxml,C#,.net,Xml,Xmldocument,Innerxml,最后,结果是: XmlDocument doc = new XmlDocument(); doc.AppendChild(doc.CreateElement("Foo")); doc.DocumentElement.InnerXml = "Test"; StringBuilder result = new StringBuilder(); doc.WriteContentTo(XmlWriter.Crea
XmlDocument doc = new XmlDocument();
doc.AppendChild(doc.CreateElement("Foo"));
doc.DocumentElement.InnerXml = "Test";
StringBuilder result = new StringBuilder();
doc.WriteContentTo(XmlWriter.Create(result));
测试
这意味着缺少结束元素。这是为什么?我如何修复它?问题是您正在创建一个XmlWriter,但没有处理它-因此它没有刷新。试试这个:
<Foo>Test
输出:
using System;
using System.Text;
using System.Xml;
class Test
{
static void Main()
{
XmlDocument doc = new XmlDocument();
doc.AppendChild(doc.CreateElement("Foo"));
doc.DocumentElement.InnerXml = "Test";
StringBuilder result = new StringBuilder();
using (XmlWriter writer = XmlWriter.Create(result))
{
doc.WriteContentTo(writer);
}
Console.WriteLine(result);
}
}
测试
问题在于您正在创建一个XmlWriter,但没有处理它-因此它没有刷新。试试这个:
<Foo>Test
输出:
using System;
using System.Text;
using System.Xml;
class Test
{
static void Main()
{
XmlDocument doc = new XmlDocument();
doc.AppendChild(doc.CreateElement("Foo"));
doc.DocumentElement.InnerXml = "Test";
StringBuilder result = new StringBuilder();
using (XmlWriter writer = XmlWriter.Create(result))
{
doc.WriteContentTo(writer);
}
Console.WriteLine(result);
}
}
测试