我遇到了以下问题,
我首先写入我的xml文件,如下所示:
XmlTextWriter writer = new XmlTextWriter("course.xml", null);
writer.Formatting = Formatting.Indented;
writer.WriteStartDocument();
writer.WriteStartElement("Course");
writer.WriteAttributeString("title", "Examle");
writer.WriteAttributeString("started", "true");
writer.WriteEndElement();
writer.WriteEndDocument();
writer.Close();
我得到的xml输出是:
<?xml version="1.0"?>
<Course title="Example" started="true" />
之后我想写更多数据到这个xml文件,所以我再次使用我的代码:
XmlTextWriter writer = new XmlTextWriter("course.xml", null);
writer.Formatting = Formatting.Indented;
writer.WriteStartDocument();
writer.WriteStartElement("Course");
writer.StartElement("Level");
writer.StartElement("Module");
writer.EndElement();
writer.EndElement();
writer.WriteEndElement();
writer.WriteEndDocument();
writer.Close();
xml输出为:
<?xml version="1.0"?>
<Course>
<Level>
<Module>
</Module>
</Level>
</Course>
因此它取代了原始数据和课程标签中的所有属性。因此,我需要一种不替换数据的方法,而是将其添加到现有标记内。
答案 0 :(得分:2)
XML文件只是顺序文本文件。它们不是数据库或随机访问文件。没有办法只写入它们的中间。
答案 1 :(得分:0)
我建议将整个xml文档解析到内存中,添加新数据,然后再将整个文档写回来。