Linq to Xml:两次保存文档时出错

时间:2014-01-31 15:35:21

标签: c# linq-to-xml

我有以下xml:

<?xml version="1.0" encoding="utf-16" standalone="yes"?>
<property_set_list xmlns="myNamespace">
    <property_set symbol_id="Config">   
    </property_set>
</property_set_list>

我想打开它,添加一些属性然后关闭它并编辑添加的属性然后再次保存:

var xws = new XmlWriterSettings { Indent = true, IndentChars = TAB };

using (var reader = ReaderCreator())
using (var output = OutputCreator())
using (var xmlWriter = XmlWriter.Create(output, xws))
{
    XDoc = XElement.Load(reader, LoadOptions.None);
    Namespace = "myNamespace";

    // Append node   
    AppendToNode("Config", "", MAIN_LOBBY_LIST_CTRL_LOCAL_TABLES_COLOR,      
                 318, 8);

    XDoc.Save(xmlWriter);

    // Edit added node
    SetColors();

    // Error here
    XDoc.Save(xmlWriter);

}

该属性已添加。然后成功保存。编辑成功。但是我在第二次保存时收到以下错误:

"Token StartDocument in state End Document would result in an invalid XML document."

我可以在这做什么?欢迎任何建议。

1 个答案:

答案 0 :(得分:0)

您必须创建另一个XmlWriter。没有办法重置它,并从底层流的开始再次开始写。