2010-09-21 70 views
0
 XmlDocument doc = new XmlDocument(); 
     doc.AppendChild(doc.CreateElement("Foo")); 
     doc.DocumentElement.InnerXml = "Test";  
     StringBuilder result = new StringBuilder(); 
     doc.WriteContentTo(XmlWriter.Create(result)); 

在结束时,结果是:为XmlDocument的设定InnerXml导致缺失结束标签

<Foo>Test 

,这意味着端部元件缺失。为什么是这样的,我该如何解决它?

回答

6

问题是你正在创建一个XmlWriter,但没有处理它 - 所以它不是冲洗。试试这个:

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); 
    } 
} 

输出:

<?xml version="1.0" encoding="utf-16"?><Foo>Test</Foo> 
相关问题