Я столкнулся с следующей проблемой,
Сначала я пишу в свой 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>
Таким образом, он заменяет мои исходные данные и все атрибуты в теге курса. Поэтому мне нужен способ, когда он не заменяет данные, а вместо этого добавляет его в существующие теги.
XML файлы - это только последовательные текстовые файлы. Они не являются базой данных или файлом произвольного доступа. Невозможно просто написать их посредине.
Я бы рекомендовал развернуть весь XML-документ в памяти, добавить новые данные, а затем снова записать весь документ.