Неожиданное объявление XML в C # и Linq to xml - PullRequest
0 голосов
/ 17 ноября 2018

Я хочу открыть 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 . Нажмите здесь, чтобы увидеть прикрепленное изображение

...