Я хочу открыть XML-запись в ZipArchive для ее редактирования с помощью Linq to XML.
Это мой код:
using (FileStream fs = new FileStream(ProjectFileName, FileMode.OpenOrCreate, FileAccess.ReadWrite))
{
// create or read a zip archive with ZipArchive.
using (ZipArchive archive = new ZipArchive(fs, ZipArchiveMode.Update))
{
var entry = archive.Entries.SingleOrDefault(e => e.FullName.Contains(bilinearUang.PushOver.ModelName));
//ZipArchiveEntry entry = archive.GetEntry(bilinearUang.PushOver.ModelName + ".xml");
if (entry == null)
throw new Exception($"Not found '{bilinearUang.PushOver.ModelName + ".xml"}' ");
Stream entryStream = entry.Open();
XElement xEl = XElement.Load(entryStream);
var vs = xEl.Descendants(nameof(bilinearUang.Vs)).SingleOrDefault();
var ds = xEl.Descendants(nameof(bilinearUang.Delta_s)).SingleOrDefault();
if (vs != null) vs.Value = bilinearUang.Vs.ToString(CultureInfo.InvariantCulture);
if (ds != null) ds.Value = bilinearUang.Vs.ToString(CultureInfo.InvariantCulture);
xEl.Save(entryStream);
entryStream.Dispose();
}
}
но это исключение:
System.Xml.XmlException: 'Неожиданное объявление XML. Декларация XML должна быть первым узлом в документе, и символы пробела не должны появляться перед ним. Строка 414, позиция 14.
Структура xml будет смешана после загрузки с XElement.Load .
Нажмите здесь, чтобы увидеть прикрепленное изображение