Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
0 / 0 / 1
Регистрация: 18.05.2015
Сообщений: 30
1

Как сохранить данные в XML?

19.03.2016, 23:44. Показов 2655. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Загружаю данные из XML в DataGrid. Некие действия с данными после чего мне нужно новые данные сохранить, пробывал вот так
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
27
28
29
30
31
32
33
34
35
36
private void SaveButton_Click(object sender, RoutedEventArgs e)
        {
            List<Receipt> newReceipt = new List<Receipt>();
            XmlDocument doc = new XmlDocument();
            //(1) the xml declaration is recommended, but not mandatory
            XmlDeclaration xmlDeclaration = doc.CreateXmlDeclaration("1.0", "UTF-8", null);
            XmlElement root = doc.DocumentElement;
            doc.InsertBefore(xmlDeclaration, root);
 
            //(2) string.Empty makes cleaner code
            XmlElement element1 = doc.CreateElement(string.Empty, "Receipts", string.Empty);
            doc.AppendChild(element1);
 
            XmlElement element2 = doc.CreateElement(string.Empty, "Receipt", string.Empty);
            element1.AppendChild(element2);
 
            XmlAttribute attribute = doc.CreateAttribute("Data");
            attribute.Value = XmlConvert.ToString(newReceipt.Date);
            element2.Attributes.Append(attribute);
 
            XmlElement element3 = doc.CreateElement(string.Empty, "Number", string.Empty);
            XmlText text1 = doc.CreateTextNode(newReceipt.Number);
            element3.AppendChild(text1);
            element2.AppendChild(element3);
 
            XmlElement element4 = doc.CreateElement(string.Empty, "NameOperation", string.Empty);
            XmlText text2 = doc.CreateTextNode(newReceipt.NameOperation);
            element4.AppendChild(text2);
            element2.AppendChild(element4);
 
            XmlElement element5 = doc.CreateElement(string.Empty, "Cost", string.Empty);
            XmlText text3 = doc.CreateTextNode(newReceipt.Cost);
            element5.AppendChild(text3);
            element2.AppendChild(element5);
            doc.Save("D:\\document.xml");
        }
Но ничего не получилось, как работать с коллекциями не знаю, еще не проходили, но я так понимаю что с помощью неё нужно как-то данные сохранять, теги и атрибут создаются, но вот новые данные не записываются
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
27
28
29
30
31
32
33
34
35
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace WpfApplication1
{
    public class ParsedXmlDocument
    {
        //Свойства класса
        public List<Receipt> Receipts { get; set; }
        //Свойства класса
        public ParsedXmlDocument()
        {
            this.Receipts = new List<Receipt>();
        }
    }
    public class Receipt
    {
        //Свойства класса
        public string Number { get; set; }
        public string NameOperation { get; set; }
        public DateTime Date { get; set; }
        public string Cost { get; set; }
        //Свойства класса
        public Receipt()
        {
            this.Number = string.Empty; 
            this.NameOperation = string.Empty;
            this.Date = Date;
            this.Cost = string.Empty;
        }
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.03.2016, 23:44
Ответы с готовыми решениями:

Как считать все данные о файлах и сохранить в xml файл?
Добрый день. Подскажите пожалуйста. Как считать все данные о файлах (как считать имя, его размер в...

Все данные и структуру treeview сохранить в XML
собственно как сделать чтобы все данные и структура treeview писались в XML?

Получаю xml по url, как сохранить содержимое в новый xml файл, только чтобы структура не нарушилась?
Когда делаю так, структура нарушается WebRequest request =...

Как считывать и как записывать XML файлы? И вообще,является ли хорошим тоном хранить данные в xml?
Я знаю,насколько часто меня любят отправлять в гугл,но проблема такова,что везде показывается...

4
1494 / 1209 / 821
Регистрация: 29.02.2016
Сообщений: 3,614
20.03.2016, 10:18 2
DataGridView в XML
0
0 / 0 / 1
Регистрация: 18.05.2015
Сообщений: 30
20.03.2016, 13:43  [ТС] 3
Это в WinForm, а у меня WPF
0
1494 / 1209 / 821
Регистрация: 29.02.2016
Сообщений: 3,614
20.03.2016, 13:57 4
http://stackoverflow.com/quest... d-xml-file
0
0 / 0 / 1
Регистрация: 18.05.2015
Сообщений: 30
20.03.2016, 14:33  [ТС] 5
Там как загрузить В datagrid, а мне нужно из datagrid, вообщем я сделал, но теперь другая проблема, когда я изменяю данный в самом DataGrid (Двойным кликом мыши -> меняю какие-то данные -> нажимаю Enter) , а затем сохраняю, то сохраняются данные до изменения
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
XmlDocument xmlDoc = new XmlDocument();
            XmlNode rootNode = xmlDoc.CreateElement(nameof(Receipts));
            xmlDoc.AppendChild(rootNode);
 
            foreach (var item in Receipts)
            {
                var userNode = xmlDoc.CreateElement(nameof(Receipt));
                var attribute = xmlDoc.CreateAttribute(nameof(item.Date));
                attribute.Value = item.Date.ToString();
                userNode.Attributes.Append(attribute);
 
                var subNode = xmlDoc.CreateElement(nameof(item.Number));
                subNode.InnerText = item.Number.ToString();
                userNode.AppendChild(subNode);
 
                subNode = xmlDoc.CreateElement(nameof(item.NameOperation));
                subNode.InnerText = item.NameOperation.ToString();
                userNode.AppendChild(subNode);
 
                subNode = xmlDoc.CreateElement(nameof(item.Cost));
                subNode.InnerText = item.Cost.ToString();
                userNode.AppendChild(subNode);
 
                rootNode.AppendChild(userNode);
            }
            xmlDoc.Save("XML123.xml");
0
20.03.2016, 14:33
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.03.2016, 14:33
Помогаю со студенческими работами здесь

Как сохранить xml?
Не удается изменить файл .xml программными средствами. Создаю приложение магазина windows для...

Как сохранить настройки из PropertyGrid в xml-файл?
Подскажите, пожалуйста, как сохранить настройки из PropertyGrid в xml-файл? Нашла процедуры для...

Как сохранить xml файл без BOM?
Здравствуйте! Как сохранить xml файл в кодировке UTF-8 без BOM ?

List<string>. Как сохранить/прочитать в XML?
Пробую сохранить/прочитать в XML следующим способом. Класс CreateList.cs public class...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru