Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
В поиске
104 / 52 / 17
Регистрация: 20.04.2014
Сообщений: 826

Сереализация/Десериализация xml

27.01.2023, 20:42. Показов 401. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите как Сереализавать - Десериализовать xml подобного вида:
XML
1
2
3
4
5
6
7
8
9
<?xml version="1.0" encoding="utf-8"?>
<av:Addd appVersion="2.16.4.2">
   <av:Bnnn>
       <av:Код>1</av:Код>
       <av:Активно>true</av:Активно>
   </av:Bnnn>
   <av:Nooo>
   </av:Nooo>
</av:Addd>
Если бы код был
XML
1
2
3
4
5
6
7
8
9
<?xml version="1.0" encoding="utf-8"?>
<Addd appVersion="2.16.4.2">
   <Bnnn>
       <Код>1</av:Код>
       <Активно>true</Активно>
   </Bnnn>
   <Nooo>
   </Nooo>
</Addd>
То проблем бы не было я бы создал класс примерно такой:
C#
1
2
3
4
5
6
7
8
9
10
public class Addd
{
    public List<Bnnn> Bnnn { get; set; }
    public List<Bnnn> Nooo { get; set; }
}
public class Bnnn
{
    public string Код { get; set; }
    public bool Активно { get; set; }
}
А вот что добавляет av: в хамл
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.01.2023, 20:42
Ответы с готовыми решениями:

XML сереализация и десереализация
Все доброго времени суток. Я новичек, изучаю (ну как изучаю... мучаю) С#. Дошли руки до сереализации в XML и у меня накопились вопросы,...

Десериализация XML
Привет. Прошу дать совет, как мне сериализовать такую XML-ку: какой должен быть класс для: &lt;?xml version=&quot;1.0&quot;...

Десериализация XML
Здравствуйте! Добавлено через 27 секунд Решил(

4
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16140 / 11264 / 2888
Регистрация: 21.04.2018
Сообщений: 33,109
Записей в блоге: 2
27.01.2023, 21:38
Лучший ответ Сообщение было отмечено КВА696 как решение

Решение

Цитата Сообщение от КВА696 Посмотреть сообщение
как Сереализавать - Десериализовать xml подобного вида:
Создание по файлу XML структуры классов для сериализации
1
В поиске
104 / 52 / 17
Регистрация: 20.04.2014
Сообщений: 826
27.01.2023, 22:09  [ТС]
Элд Хасп, Спасибо. То что надо только вот с одним но. Считывает файл без ошибок, а вот после записи почему то убирает везде приставку av: это поправить можно или из за чего это происходит?

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
XmlSerializer xmlSerializer = new XmlSerializer(typeof(Addd));
            Addd? person;
            // десериализуем объект
            using (FileStream fs = new FileStream(filePath, FileMode.OpenOrCreate))
            {
                person = xmlSerializer.Deserialize(fs) as Addd;
            }
 
 
            // получаем поток, куда будем записывать сериализованный объект
            using (FileStream fs = new FileStream("person1.xml", FileMode.OpenOrCreate))
            {
                xmlSerializer.Serialize(fs, person);
            }
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16140 / 11264 / 2888
Регистрация: 21.04.2018
Сообщений: 33,109
Записей в блоге: 2
27.01.2023, 23:07
Лучший ответ Сообщение было отмечено КВА696 как решение

Решение

Цитата Сообщение от КВА696 Посмотреть сообщение
то убирает везде приставку av:
Из моего понимания (я не сильно в этой теме) av: это префикс пространства имён.
И он должен задаваться через атрибут xmlns.
Я в начале не обратил внимание на ваш xml.
У вас нет этого атрибута, поэтому, по правилам синтаксиса xml префикс av: игноритруется.

Корректная структура такая:
XML
1
2
3
4
5
6
7
8
9
10
<?xml version="1.0" encoding="utf-8"?>
<av:Addd xmlns:av="SomeNameSpace"
         appVersion="2.16.4.2">
   <av:Bnnn>
       <av:Код>1</av:Код>
       <av:Активно>true</av:Активно>
   </av:Bnnn>
   <av:Nooo>
   </av:Nooo>
</av:Addd>
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
using System;
using System.Xml.Serialization;
using System.Collections.Generic;
namespace Xml2CSharp
{
    [XmlRoot(ElementName="Bnnn", Namespace="SomeNameSpace")]
    public class Bnnn {
        [XmlElement(ElementName="Код", Namespace="SomeNameSpace")]
        public string Код { get; set; }
        [XmlElement(ElementName="Активно", Namespace="SomeNameSpace")]
        public string Активно { get; set; }
    }
 
    [XmlRoot(ElementName="Addd", Namespace="SomeNameSpace")]
    public class Addd {
        [XmlElement(ElementName="Bnnn", Namespace="SomeNameSpace")]
        public Bnnn Bnnn { get; set; }
        [XmlElement(ElementName="Nooo", Namespace="SomeNameSpace")]
        public string Nooo { get; set; }
        [XmlAttribute(AttributeName="av", Namespace="http://www.w3.org/2000/xmlns/")]
        public string Av { get; set; }
        [XmlAttribute(AttributeName="appVersion")]
        public string AppVersion { get; set; }
    }
 
}
Добавлено через 3 минуты
Ещё вот это прочитайте Практическое руководство. Квалификация элемента XML и имен атрибутов XML

Добавлено через 2 минуты
Вот это тоже: Как я могу использовать XML-сериализуемые префиксы пространств имен?
2
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16140 / 11264 / 2888
Регистрация: 21.04.2018
Сообщений: 33,109
Записей в блоге: 2
27.01.2023, 23:39
КВА696, из документации:
Миниатюры
Сереализация/Десериализация xml  
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.01.2023, 23:39
Помогаю со студенческими работами здесь

Десериализация XML
есть XML документ, изменить формат не получится &lt;Points&gt; &lt;Point IsRequired=&quot;1&quot; X=&quot;0&quot; Y=&quot;0&quot; Z=&quot;0&quot;/&gt; ...

Десериализация XML
public partial class Form1 : Form { List&lt;Transport&gt; listOfTransportFirst = new List&lt;Transport&gt;(); ...

Десериализация XML
Нужна помощь в десериализации XML &lt;rss version=&quot;2.0&quot; xmlns:media=&quot;http://search.yahoo.com/mrss/&quot;...

Десериализация XML
Есть окошко, которое делает &quot;Вход в систему&quot;. Для входа нужен username, password, они хранятся в xml файле. И нужно десериализовать всю эту...

Десериализация xml документа
Имеется xml файл, который нужно десериализовать с помощью xsd схемы. При помощи xsd-схемы были сгенерированны классы (с помощью xsd.exe)....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru