В последнее время завовевывает популярность новый формат данных — XML. Одним из его достинств является то, что это самописываемый формат данных, что значительно облечает работу с ним. Тем не менее, многих все еще пугает само слвово «XML». В этой статье я постараюсь доказать простоту и удобтво работы с XML-данными на примере приложения, которое отображает XM_-данные в удобной человеку форме и позволяет редактировать их.
Для начала не будем забираться в дебри пространства имен System.XML, а обойдемся объектом DataSet пространства имен System.Data.
У объекта DataSet есть два замечательных метода: ReadXml() и WriteXml() — первый считывает данные в формате XML в объект DataSet, а второй их выводит. Эти методы перегружены, и позволяют вам как считать данные из файла на диске, или из потока Stream в оперативной памяти, так и вывести как в файл на диске, так и в Stream.
Подготовка формы
Итак приступим к созданию приложения. Для этого создадим новый C#-проект Windows Application. (File — New — Projects в Visual Studio .NET).
Чтение и запись структуры в XML-файл с русским языком на С#.
Теперь приступим к подготовке формы:
«Бросим» на форму компонент ListBox и дадим ему имя — listTables (имя дается с помощью свойства Name). «Пришвартуем» его к левому краю формы, указав в свойстве Dock значение «Left». Как вы уже догадались — он будет отображать список таблиц в XML — файле.
Затем поместим на форму копмонент Splitter, который позволит нам менять относительные размеры компонентов на форме. И укажем в свойстве Dock — «Left».
Затем поместим на форму объект DataGrid, который будет отображать табличные данные. Обзовем его как dataGrid, а в свойстве Dock укажем — Fill.
Затем поместим на форму еще три компонента (после помещения на форму они отобразятся ПОД формой):
MainMenu — главное меню приложения, назовем его как mainMenu.
OpenFileDialog — диалог открытия файла. Назовем его openFileDialog.
SaveFileDialog — диалог сохранения файла. Понятно, что его будем звать saveFileDialog.
Источник: www.internet-technologies.ru
Создание приложения, работающего с XML-данными
В последнее время завовевывает популярность новый формат данных — XML. Одним из его достинств является то, что это самописываемый формат данных, что значительно облечает работу с ним. Тем не менее, многих все еще пугает само слвово «XML». В этой статье я постараюсь доказать простоту и удобтво работы с XML-данными на примере приложения, которое отображает XM_-данные в удобной человеку форме и позволяет редактировать их.
Для начала не будем забираться в дебри пространства имен System.XML, а обойдемся объектом DataSet пространства имен System.Data.
У объекта DataSet есть два замечательных метода: ReadXml() и WriteXml() — первый считывает данные в формате XML в объект DataSet, а второй их выводит. Эти методы перегружены, и позволяют вам как считать данные из файла на диске, или из потока Stream в оперативной памяти, так и вывести как в файл на диске, так и в Stream.
Что такое XML? Часть 1
Подготовка формы
Итак приступим к созданию приложения. Для этого создадим новый C#-проект Windows Application. (File — New — Projects в Visual Studio .NET).
Теперь приступим к подготовке формы:
«Бросим» на форму компонент ListBox и дадим ему имя — listTables (имя дается с помощью свойства Name). «Пришвартуем» его к левому краю формы, указав в свойстве Dock значение «Left». Как вы уже догадались — он будет отображать список таблиц в XML — файле.
Затем поместим на форму копмонент Splitter, который позволит нам менять относительные размеры компонентов на форме. И укажем в свойстве Dock — «Left».
Затем поместим на форму объект DataGrid, который будет отображать табличные данные. Обзовем его как dataGrid, а в свойстве Dock укажем — Fill.
Затем поместим на форму еще три компонента (после помещения на форму они отобразятся ПОД формой):
MainMenu — главное меню приложения, назовем его как mainMenu.
OpenFileDialog — диалог открытия файла. Назовем его openFileDialog.
SaveFileDialog — диалог сохранения файла. Понятно, что его будем звать saveFileDialog.
Написание кода
Добавим новую переменную dataSet в класс формы
private DataSet dataSet ;
Добавим функцию UpdateListtables(), которая будет обновлять список таблиц в listTables. Для этого она будет просто пробегать по списку таблиц в dataSet и отображать их имена в listTables.
//Обновление списка таблиц
private void UpdateTableList ()
//Очищаем список таблиц
listTables . Items . Clear ();
//Пробегаемся по таблицам dataSet
foreach( DataTable table in dataSet . Tables )
listTables . Items . Add ( table . TableName );
if( listTables . Items . Count > 0 )
listTables . SelectedIndex = 0 ;
Затем в конструкторе нашей формы проинициализируем наши компоненты. Свою форму я назвал как DataXmlForm, следовательно конструктор зовется DataXmlForm().
//Обавляем фильтр для fileOpenDialog
«XML — files (*.xml)|*.xml|All files (*.*)|*.*» ;
//Говорим ему воостанавливать последнюю диреторию
openFileDialog . RestoreDirectory = true ;
«XML — files (*.xml)|*.xml|All files (*.*)|*.*» ;
saveFileDialog . RestoreDirectory = true ;
//Создаем новый DataSet
//точнее вызываем его контсруктор
dataSet = new DataSet ();
Теперь будем работать с mainMenu. Набирая наименование пункта в меню в поле, где написано «Type here», мы можем добавить новый пункт.
Итак добавим корневой пункт — File, назовем его menuItemFile. Кликаем по неиу один раз и в раскрывшемся ниже списке добавляем пункты Open (имя — menuItemOpen), Save (menuItemSave), Close (menuItemClose). Кликая два раза по нужному пункту меню, мы можем добавить обработчик. Итак кликнем по 2 раза по пунктам «Open», «Save», «Close» и добавим обработчики на них. В обработчике пункта меню Open будет следующее:
private void menuItemOpen_Click
( object sender , System . EventArgs e )
if( openFileDialog . ShowDialog () ==
//Считывание XML — данных в dataSet
dataSet . ReadXml ( openFileDialog . FileName );
//Принятие изменений dataSet
//Обновление списка таблиц
//Изменение заголовка окна
this . Text = «Data Xml » + openFileDialog . FileName ;
Если мы выбираем какой-либо файл, то он считывается в dataSet. Аналогично сохранение файла, а закрытие программы, вообще, можно оставить без комментариев — настолько оно просто:
private void menuItemSave_Click
( object sender , System . EventArgs e )
saveFileDialog . FileName = openFileDialog . FileName ;
if( saveFileDialog . ShowDialog () == DialogResult . OK )
//Запись XML-данных из dataSet на диск
dataSet . WriteXml ( saveFileDialog . FileName );
//Обновление заголовка окна
this . Text = «Data XML » + saveFileDialog . FileName ;
//выход из приложения
private void menuItemClose_Click
( object sender , System . EventArgs e )
Далее нам необходимо, чтобы при выделении таблицы в listTables, она отображалась в dataGrid. Для добавления обработчика дважды кликаем по listTables. Чтобы показать dataGrid’у откуда брать данные воспользуемся свойством DataSource, в котором укажем dataSet. А чтобы показать какую именно таблицу отображать из dataSet используем свойство DataMember:
//Изменение отображаемой таблицы
private void listTables_SelectedIndexChanged
( object sender , System . EventArgs e )
//указываем источник данных dataGrid
dataGrid . DataSource = dataSet ;
//указываем отображаемую таблицу
dataGrid . DataMember = listTables . SelectedItem . ToString ();
//имзеняем заголовок dataGrid
dataGrid . CaptionText = listTables . SelectedItem . ToString ();
Источник: www.illari.ru
Пошаговое руководство. Использование функций редактора XML
Область применения:Visual Studio
Visual Studio для Mac
Visual Studio Code
В этом пошаговом руководстве подробно описан процесс создания нового XML-документа. В нем также используются некоторые функции редактора XML, благодаря которым это приложение становится очень полезным при создании XML-документов.
Прежде чем начать работу с пошаговым руководством, сохраните файл hireDate.xsd (содержится ниже в данном разделе) на локальном компьютере.
Создание XML-файла и связывание его со схемой XML
- В меню Файл выберите пункт Создать, затем — Файл.
- Выберите в области Шаблоны пункт XML-файл и нажмите кнопку Открыть. Новый файл открывается в редакторе. Этот файл содержит XML-декларацию по умолчанию: .
- В окне свойств документа нажмите кнопку обзора ( . ) в поле Схемы. Отобразится диалоговое окно XSD-схемы.
- Нажмите кнопку Добавить. Отображается диалоговое окно Открытие XSD-схемы.
- Выберите файл hireDate.xsd и нажмите кнопку Открыть.
- Нажмите кнопку ОК. Теперь с XML-документом связана XML-схема. Эта XML-схема используется для проверки правильности документа. Также она используется технологией IntelliSense для заполнения списка допустимых элементов.
Добавление данных
- Наберите < на панели редактора. Список членов отображает следующие возможные элементы:
- !— для добавления комментария.
- !DOCTYPE для добавления типа документа.
- ? для добавления инструкции по обработке.
- сотрудник для добавления корневого элемента.
- Выберите для добавления узла комментариев и нажмите клавишу Enter. Редактор вставляет закрывающий тег комментария и помещает курсор между открывающим и закрывающим тегами комментария.
- Введите Test XML file.
- В новой строке введите < и выберите сотрудника из списка членов. Редактор добавляет начало XML-элемента, .
- Введите знак > , чтобы закрыть тег.
- Редактор добавляет закрывающий тег. Закрывающий тег после добавления будет подчеркнут волнистой линией, обозначающей ошибку проверки правильности. Всплывающая подсказка отображает сообщение: Содержимое элемента «сотрудник» неполно. Ожидается ID.
- Введите знак < и выберите ID из списка членов. Затем введите > . Редактор добавляет XML-элемент, , и помещает курсор после открывающего тега ID.
- Введите abc. Текст abc подчеркивается волнистой линией. Всплывающая подсказка отображает сообщение: Элемент «ID» имеет недопустимое значение для этого типа данных.
- Щелкните правой кнопкой мыши элемент ID и выберите команду Перейти к определению. Редактор открывает файл hireDate.xsd в новом окне документа и помещает курсор на определении элемента схемы ID.
- Вернитесь к XML-файлу и замените текст abc на 123. Волнистое подчеркивание и подсказка, относящиеся к элементу ID, удаляются. Подсказка для закрывающего тега элемента «сотрудник» будет содержать сообщение: Содержимое элемента «сотрудник» неполно. Предполагается наличие элемента «дата найма» .
- Поместите курсор после закрывающего тега ID, введите < , выберите элемент дата найма из списка членов, а затем введите > . Редактор добавляет XML-элемент и помещает курсор после открывающего тега элемента «hire-date».
- Введите 10.01.2003 в качестве значения даты найма.
Форматирование XML-документа
- Нажмите кнопку Форматировать документ на панели инструментов редактора XML или нажмите сочетание клавиш Ctrl+E,D. XML-документ будет переформатирован.
Сохранение XML-документа
- В меню Файл щелкните Сохранить как. Отобразится диалоговое окно Сохранение файла. Имя файла по умолчанию — «XMLFile1» .
- Введите имя файла и место сохранения для XML-документа и нажмите кнопку Сохранить.
Файл hireDate.xsd
В этом пошаговом руководстве используется следующий файл схемы.
Источник: learn.microsoft.com