0
        XmlDocument doc = new XmlDocument();
        doc.AppendChild(doc.CreateElement("Foo"));
        doc.DocumentElement.InnerXml = "Test";      
        StringBuilder result = new StringBuilder();
        doc.WriteContentTo(XmlWriter.Create(result));

最後に、結果は次のとおりです。

<Foo>Test

これは、終了要素が欠落していることを意味します。それはなぜですか、どうすれば修正できますか?

4

1 に答える 1

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>
于 2010-09-21T13:54:19.560 に答える