Присоединение XElement к XML-файлу без сохранения всего файла.C # - PullRequest
1 голос
/ 15 января 2010

Возможно ли в C # добавить XElement к уже существующему XML-файлу, не сохраняя весь XML, а только новый элемент?

Так что я не хочу что-то подобное, так как он будет записывать весь XML на диск.

XDocument document = new XDocument();
document.Load("filename");
document.Root.add(new XElement("name", "content"));
document.save("filename");

спасибо заранее.

1 Ответ

2 голосов
/ 15 января 2010

Да, но только благодаря получению немного более низкого уровня, чем в вашем примере.

В файле XML у вас может быть только один корневой элемент, поэтому, если вы просто добавляете файл, чтобы добавить новый элемент, вы создадите испорченный XML-файл.

Однако вы можете прочитать из конца файла и проанализировать его, чтобы найти начало конечного тега корневого элемента (который даст вам позицию файла).Затем вы можете открыть файл как FileStream для записи, установить Положение записи в начало корневого-конечного тега, а затем записать новый элемент в поток как обычно.Затем вам нужно будет заполнить файл "вручную", добавив текст, чтобы добавить новый корневой тег.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...