Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
шарпопочитатель
 Аватар для ht1515
59 / 26 / 7
Регистрация: 31.01.2010
Сообщений: 1,035

работа с XML

03.07.2010, 18:45. Показов 1807. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
почему то при попытке сохранения фаила, сам фаил вроде норм сохраняется, но
выводится ссобщение
https://www.cyberforum.ru/atta... 1111256794

помимо этого почему то хмл в проге не открывается.
Миниатюры
работа с XML  
Вложения
Тип файла: rar Projects.rar (42.4 Кб, 27 просмотров)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.07.2010, 18:45
Ответы с готовыми решениями:

Работа с XML через System.Xml
День добрый! Подскажите пожалуйста как решить такую проблему. Есть XML документ следующего содержания: <?xml...

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

Работа с XML
1) Как получить содержимое тега? например есть такая конструкция: <day type="A"> <gymnastic sets="4"...

8
 Аватар для HIMen
4340 / 1509 / 101
Регистрация: 12.04.2009
Сообщений: 2,342
03.07.2010, 18:57
ht1515, Выложи сам XML и код, где с ним работаешь
0
шарпопочитатель
 Аватар для ht1515
59 / 26 / 7
Регистрация: 31.01.2010
Сообщений: 1,035
03.07.2010, 19:39  [ТС]
XML
1
<?xml version="1.0" encoding="utf-16"?><Коды><код ббкод="1" хтмлкод="1" /><код ббкод="1" хтмлкод="12" /><код ббкод="1" хтмлкод="123" /><код ббкод="1" хтмлкод="1234" /><код /></Коды>
открытие\сохранение
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
   private void button2_Click(object sender, EventArgs e)
        {
            OpenFileDialog dlg = new OpenFileDialog();
            dlg.Filter = "Файлы XML (*.xml)|*.xml";
 
            if (dlg.ShowDialog() != DialogResult.OK)
                return;
 
            XmlTextReader reader = null;
 
            try
            {
                reader = new XmlTextReader(dlg.FileName);
                reader.WhitespaceHandling = WhitespaceHandling.None;    // пропускаем пустые узлы
 
                while (reader.Read())
                    if (reader.NodeType == XmlNodeType.Element)
                        if (reader.Name == "Код")
                        {
                            String grid2 = reader.GetAttribute("ббкод");
                            String grid3 = reader.GetAttribute("хтмлкод");
                            grid.Rows.Add(grid2, grid3);
                        }
 
 
            }
            catch (Exception ex)
            {
                MessageBox.Show("Ошибка: " + ex.Message);
            }
            finally
            {
                if (reader != null)
                    reader.Close();
            }
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            SaveFileDialog saveDlg = new SaveFileDialog();
            saveDlg.FileName = "коды";
            saveDlg.DefaultExt = "xml";
            saveDlg.Filter = "Файлы XML (*.xml)|*.xml";
 
            if (saveDlg.ShowDialog() != DialogResult.OK)
                return;
 
            XmlTextWriter writer = null;
 
            try
            {
                writer = new XmlTextWriter(saveDlg.FileName, System.Text.Encoding.Unicode);
 
                writer.WriteStartDocument();
                writer.WriteStartElement("Коды");
 
                // сохраняем заказы
                for (int i=0;i<grid.RowCount;i++)
                {
                    writer.WriteStartElement("код");
                    writer.WriteAttributeString("ббкод", grid[0,i].Value.ToString());
                    writer.WriteAttributeString("хтмлкод", grid[1, i].Value.ToString());
 
                    writer.WriteEndElement();
                }
 
                writer.WriteEndElement();
                writer.WriteEndDocument();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Ошибка: " + ex.Message);
            }
            finally
            {
                if (writer != null)
                    writer.Close();
            }
        }
0
1152 / 860 / 263
Регистрация: 30.04.2009
Сообщений: 3,603
03.07.2010, 23:44
А тебе именно XmlTextReader, XmlTextWriter нужно использовать?
И под какую версию .NET Framework?
Если под версию 3.5, то намного проще использовать XDocument и LinqToXML.
0
 Аватар для kuroiryuu
328 / 312 / 68
Регистрация: 05.11.2009
Сообщений: 712
04.07.2010, 00:39
для начала...
Xml чувствителен к регистру букв
файл программа открывает, но ничего не находит из-за выше описанного
а ошибка из-за пустой строки у DataGridView
вот исправленные методы:
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
        private void button2_Click(object sender, EventArgs e)
        {
            OpenFileDialog dlg = new OpenFileDialog();
            dlg.Filter = "Файлы XML (*.xml)|*.xml";
 
            if (dlg.ShowDialog() != DialogResult.OK)
                return;
 
            grid.Rows.Clear();
            XmlTextReader reader = null;
 
            try
            {
                reader = new XmlTextReader(dlg.FileName);
                reader.WhitespaceHandling = WhitespaceHandling.None;    // пропускаем пустые узлы
 
                while (reader.Read())
                    if (reader.NodeType == XmlNodeType.Element)
                        if (reader.Name == "код" && reader.AttributeCount != 0)
                        {
                            String grid2 = reader.GetAttribute("ббкод");
                            String grid3 = reader.GetAttribute("хтмлкод");
                            grid.Rows.Add(grid2, grid3);
                        }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Ошибка: " + ex.Message);
            }
            finally
            {
                
            }
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            SaveFileDialog saveDlg = new SaveFileDialog();
            saveDlg.FileName = "коды";
            saveDlg.DefaultExt = "xml";
            saveDlg.Filter = "Файлы XML (*.xml)|*.xml";
 
            if (saveDlg.ShowDialog() != DialogResult.OK)
                return;
 
            XmlTextWriter writer = null;
 
            try
            {
                writer = new XmlTextWriter(saveDlg.FileName, System.Text.Encoding.Unicode);
 
                writer.WriteStartDocument();
                writer.WriteStartElement("Коды");
 
                // сохраняем заказы
                for (int i = 0; i < grid.RowCount - 1; i++)
                {
                    writer.WriteStartElement("код");
                    writer.WriteAttributeString("ббкод", grid[0, i].Value.ToString());
                    writer.WriteAttributeString("хтмлкод", grid[1, i].Value.ToString());
 
                    writer.WriteEndElement();
                }
 
                writer.WriteEndElement();
                writer.WriteEndDocument();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Ошибка: " + ex.Message);
            }
            finally
            {
                if (writer != null)
                    writer.Close();
            }
        }
1
шарпопочитатель
 Аватар для ht1515
59 / 26 / 7
Регистрация: 31.01.2010
Сообщений: 1,035
04.07.2010, 11:47  [ТС]
ну то есть для открытия
C#
1
if (reader.Name == "код" && reader.AttributeCount != 0)
для сохранения
C#
1
for (int i = 0; i < grid.RowCount - 1; i++)
Xml чувствителен к регистру букв
файл программа открывает, но ничего не находит из-за выше описанного
а как это прявлялось? Я вроде регистр букв не менял нигде....
0
 Аватар для kuroiryuu
328 / 312 / 68
Регистрация: 05.11.2009
Сообщений: 712
04.07.2010, 15:16
у вас было
C#
1
if (reader.Name == "Код")
а в xml вы использовали конструкцию вида
XML
1
2
3
4
<?xml version="1.0" encoding="utf-16"?>
<Коды>
   <код ббкод="1" хтмлкод="1" />
</Коды>
0
шарпопочитатель
 Аватар для ht1515
59 / 26 / 7
Регистрация: 31.01.2010
Сообщений: 1,035
05.07.2010, 12:35  [ТС]
а ещё такой вопрос. Почему у меня вывод XML фаила в одну строку? Можно ли как то изменить это?
0
шарпопочитатель
 Аватар для ht1515
59 / 26 / 7
Регистрация: 31.01.2010
Сообщений: 1,035
18.09.2010, 14:09  [ТС]
встал вопрос, как добавить запись.
У меня программа выполняет вывод данных в эксимель фаил. Но надо сделать так чтобы фаил не переписывался весь- это же бред(заново его переписывать, если там по 1000 строк), надо чтобы запись добавлялась в конец.

XML
1
2
3
4
<?xml version="1.0" encoding="utf-16"?>
<Коды>
  <код ббкод="1" хтмлкод="1" />
</Коды>

то есть н-р
<код ббкод="2" хтмлкод="2" />
добавилась бы в конец.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.09.2010, 14:09
Помогаю со студенческими работами здесь

Работа с XML
Надо написать консольное приложение, которое копирует содержание нужного тега в отдельный файл . Вроде даже в RAD Studio удобных функций...

Работа с xml.
Приветствую всех) У меня есть xml файл. Мне нужно из него вытащить значение и присвоить его переменной. Вопрос в том, можно ли...

Работа с xml
пишу &amp;НаСервере Процедура ВыгрузитьКлиентовНаСервере(ИмяФайла) ПолноеИмя = ПутьДоФайлов + &quot;\&quot; + ИмяФайла +...

Работа с XML
Как я могу массовой выполнить replace value of? declare @temp table (xdocument XML) insert @temp values (' &lt;root&gt; ...

Работа с XML
Всем доброго дня! для CS-CART есть модуль платежной системы assist вот код получения статуса оплаты if ($mode ==...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru