Как создать xml файл c

Обновлено: 07.07.2024

Приветствую всех! Сегодня посмотрим классы и методы работы с файлами XML.

XML-eXtensible Markup Language-Текстовый формат, предназначенный для хранения структурированных данных для обмена информацией между программами, а
также для создания на его основе более специализированных языков разметки.

XML — это описанная в текстовом формате иерархическая структура, предназначенная для хранения любых структурированных данных. Визуально структура может быть представлена как дерево элементов. Элементы XML описываются тегами. Основан на принципах иерархии.

< firstElement attribute = "значения 1" attribute = "значение 2" > < ! -- Иерархия элемента второго уровня , подчиненная предыдущему -- >

XML-классы в пространстве имен System.Xml образуют полнофункциональный интегрированный набор классов, позволяющий работать с XML-документами и данными. XML-классы поддерживают синтаксический анализ и запись XML-кода, изменение XML-данных в памяти, проверку данных и преобразование XSLT.

XmlAttribute : атрибут элемента.

XmlDeclaration: описание документа.

XmlDocument : документ XML.

XmlElement : элемент XML.

XmlNode: узел, может быть как весь документ, так и отдельные элемент.

Основным классом для работы с XML является XmlNode

Attributes -колекция атрибутов узла.

ChildNodes -коллекция дочерних узлов.

Value-получить значение

Классы для работы с XML

XmlDocument основные методы и свойство:

Load()-загрузает документ из внешнего источника.

LoadXml()-создает документ из строки с XML.

Greate()-создает соответствующий объект.

DocumentElement-корневой элемент документа.

XmlElement основные методы и свойство:

XmlElement-представляет собой элемент, может иметь атрибуты, а также может иметь дочерние элементы.

GetAttribute()-возвращает значения атрибута по его имени.

Name-имя текущего элемента.

Remove-удаляет соответствующий объект.

SetAttribute()-добавляет в элемент новый атрибут с именем и значением.

XML Path Language

XPath (XML Path Language) — язык запросов к элементам XML-документа.
Разработан для организации доступа к частям документа XML в файлах трансформации XSLT и является стандартом консорциума W3C. XPath призван реализовать навигацию по DOM в XML.

Пространство имен XPath

Пространство имен, позволяющее использовать возможности языка XPath (XML Path Language).
Содержит класс XPathDocument, позволяющий создавать экземпляры XPathNavigator.
XPathNavigator – предоставляет курсор-ориентированную модель для просмотра и редактирования XML данных.

Пространство имен System.Xml.XPath содержит классы, определяющие модель курсора для переходов и изменения элементов сведений XML и предназначено для обеспечения высокой скорости работы.
XPathDocument – представляет собой быстрое, доступное только для чтения, хранимое в памяти представление XML-документа с помощью модели данных XPath. Его единственной задачей является создание навигаторов XPathNavigator. Создавать класс XPathDocument можно несколькими способами. Можно передать его конструктору
экземпляр XmlReader, имя файла XML-документа или объект, основанный на Stream. Это обеспечивает значительную гибкость, например, можно сначала применить
XmlValidatingReader для проверки правильности XML-документа и затем воспользоваться этим же объектом для создания XPathDocument.

В этом пошаговом руководстве подробно описан процесс создания нового XML-документа. В нем также используются некоторые функции редактора XML, благодаря которым это приложение становится очень полезным при создании XML-документов.

Прежде чем начать работу с пошаговым руководством, сохраните файл hireDate.xsd (содержится ниже в данном разделе) на локальном компьютере.

Создание XML-файла и связывание его со схемой XML

В меню Файл выберите пункт Создать, затем — Файл.

Выберите в области Шаблоны пункт XML-файл и нажмите кнопку Открыть.

Новый файл открывается в редакторе. Этот файл содержит XML-декларацию по умолчанию: <?xml version="1.0" encoding="utf-8"> .

В окне свойств документа нажмите кнопку обзора ( . ) в поле Схемы.

Отобразится диалоговое окно XSD-схемы.

Отображается диалоговое окно Открытие XSD-схемы.

Выберите файл hireDate.xsd и нажмите кнопку Открыть.

Теперь с XML-документом связана XML-схема. Эта XML-схема используется для проверки правильности документа. Также она используется технологией IntelliSense для заполнения списка допустимых элементов.

Добавление данных

Наберите < на панели редактора.

Список членов отображает следующие возможные элементы:

!-- для добавления комментария.

!DOCTYPE для добавления типа документа.

? для добавления инструкции по обработке.

сотрудник для добавления корневого элемента.

Выберите <!-- для добавления узла комментариев и нажмите клавишу Enter.

Редактор вставляет закрывающий тег комментария и помещает курсор между открывающим и закрывающим тегами комментария.

Введите Test XML file.

В новой строке введите < и выберите сотрудника из списка членов.

Редактор добавляет начало XML-элемента, <employee . В этот момент можно добавить в элемент атрибуты или закрыть открывающий тег, введя > .

Введите знак > , чтобы закрыть тег.

Введите знак < и выберите ID из списка членов. Затем введите > .

Редактор добавляет XML-элемент, <ID></ID> , и помещает курсор после открывающего тега ID.

Введите abc.

Щелкните правой кнопкой мыши элемент ID и выберите команду Перейти к определению.

Редактор открывает файл hireDate.xsd в новом окне документа и помещает курсор на определении элемента схемы ID.

Вернитесь к XML-файлу и замените текст abc на 123.

Поместите курсор после закрывающего тега ID, введите < , выберите элемент дата найма из списка членов, а затем введите > .

Редактор добавляет XML-элемент <hire-date></hire-date> и помещает курсор после открывающего тега элемента «hire-date».

Введите 10.01.2003 в качестве значения даты найма.

Форматирование XML-документа

Кнопка форматирования XML-документа в Visual Studio

XML-документ будет переформатирован.

Сохранение XML-документа

В меню Файл щелкните Сохранить как.

Отобразится диалоговое окно Сохранение файла. Имя файла по умолчанию — "XMLFile1" .

Введите имя файла и место сохранения для XML-документа и нажмите кнопку Сохранить.

Эмуляция мыши: как осуществить или где почитать
Зравствуйте! Перерыл кучу ресурсов, внятного ответа на свой вопрос не нашел, объясните, или дайте.

Программное создание XML-файла и его редактирование
Надо из дельфи создать xml файл (заполнить) Как это сделать. Добавлено через 2 часа 50 минут.

Программное создание XML-файла из указанного каталога
Задача: Выберите на своем компьютере папку, которая содержит несколько вложенных папок и.

посмотрите этот пример, может поможет, где-то в инете нашел этот код
Спасибо! Я ещё поискал нашел один пример, разобрался. Остались 2 вопроса:
1) Можно-ли как-то делать отступы при записи? Я вот например своим кодом записываю файл в строку, получается нечетабельно.
2) Как записывать атрибуты к тегам? чтобы отступы добавлять и чтобы читаемо всё было, надо:
А в чем различие между способами записи через XmlDocument и XmlTextWriter ?

Вот такая жэ проблема. Как решить?

Добавлено через 15 минут
ОТБОЙ, Я ВСЕ ПОНЯЛ!


Программное создание файла и запись в него
Например я скидываю *.exe на другой компьютер, запускаю его и он так же как и на моём компьютере.

Программное создание php-файла и запись в него
нужно програмно создать файл php и провести в него запись. вот начал писать класс: .

Создание запись и дополнение XML файла
Здравствуйте. Я разрабатываю программу которая будет симулировать жизненный цикл комнатного.


Создание файла xml и запись в него данных
Здравствуйте,создаю тестовую оболочку,сделал абсолютно все,кроме сохранения результатов теста в xml.

Создание таблицы и запись данных из xml файла
Здравствуйте, новичок в этой теме, подскажите пожалуйста как сделать это: 1. Есть text.xml файл. В.

Как осуществить сохранение xml файла с шифрованием. Алгоритм TripleDES
Доброго всем времени суток ! В программе имеется объект xmlDocument класса XmlDocument. Как.

XmlAttribute departmentIdAttribute = document.CreateAttribute( Nodes .DepartmentId);
departmentIdAttribute.InnerText = "D939743F-BFF7-41E4-9A1B-1193EEFF0486" ;
groupElement.Attributes.Append(departmentIdAttribute);

// Create elements.
XmlElement nameElement = document.CreateElement( Nodes .Name);
nameElement.InnerText = "555A" ;
groupElement.AppendChild(nameElement);

XmlElement courseElement = document.CreateElement( Nodes .Course);
courseElement.InnerText = "5" ;
groupElement.AppendChild(courseElement);

Согласитесь со мной, что писать, разбирать и сопровождать такой код — не очень приятно.

По данному коду невозможно получить представления о результирующей структуре XML. С каждым элементом или атрибутом необходимо всегда выполнить три шага: создать, задать свойство InnerText и добавить к уже существующему элементу или документу. Так же, без создания XmlDocument’а невозможно просто создать элемент, а ведь это необходимо достаточно часто.

Благо компания Microsoft подарила нам не просто возможность выполнения интегрированных запросов LINQ to XML, но и переработала XML DOM API.
Об этом я и хочу сегодня поведать подробнее. Для этого понадобиться подключить следующие пространства имен:

using System.Collections.Generic;
using System.Linq;
using System.Xml.Linq;

Как я уже говорил, одним из недостатков стандартной DOM модели было трудночитаемая структура получаемого XML файла. LINQ to XML API решает эту проблему, предлагая новую технику, называемую функциональным конструированием. Функциональное конструирование позволяет конструировать объекты XML и инициализировать их значения — одновременно, в единственном операторе, за счет множества перегруженных конструкторов.

Давайте посмотрим как будет выглядеть конструирование уже известного нам XML файла при помощи LINQ to XML API:

Ну как? Какой код вам легче читать? Ответ очевидный.

Объектная модель


Классы XObject, XNode и XContainer – являются абстрактными, так что создавать мы их не можем.
Класс XAttribute – не наследуется от XNode, т.е. не является узлом, это простой элемент коллекции, который представляет пару «ключ-значение».
Классы XDocument и XElement – единственные, которые могут содержать узлы, унаследованные от XNode.

XDocument


В LINQ to XML API совсем не обязательно создавать XDocument для того чтобы создать дерево XML или его фрагмент.
XDocument document = new XDocument ();
Console .WriteLine(document.ToString());

Получим пустой результат.

Сам по себе XDocument не имеет ничего полезного, только возможность добавить к документу объявление (XDeclaration), создание типа (XDocumentType) либо инструкции обработки (XProcessingInstruction).

Имеет статические методы для чтения содержимого документов, с всевозможными вариантами перегрузок:

public static XDocument Load( Stream stream);
public static XDocument Load( string uri);
public static XDocument Load( TextReader textReader);
public static XDocument Load( XmlReader reader);
public static XDocument Load( Stream stream, LoadOptions options);
public static XDocument Load( string uri, LoadOptions options);
public static XDocument Load( TextReader textReader, LoadOptions options);
public static XDocument Load( XmlReader reader, LoadOptions options);
public void Save( Stream stream);
public void Save( string fileName);
public void Save( TextWriter textWriter);
public void Save( XmlWriter writer);
public void Save( Stream stream, SaveOptions options);
public void Save( string fileName, SaveOptions options);
public void Save( TextWriter textWriter, SaveOptions options);

Такие же методы имеет и элемент (XElement).

Я использую XDocument только в том случае, если необходимо задать объявление для документа, которое содержит номер версии и кодировку.

XDeclaration


Объекты XDeclaration, как вы уже наверное догадались, содержат объявления и добавляются к документу, хотя компилятор допускает добавление объявления к элементу (XElement), но это не даст никакого видимого результата.
XDocument document = new XDocument (
new XDeclaration ( "1.0" , "UTF-8" , "yes" ));
Console .WriteLine(document.ToString());

Данный код так же не выведет никаких строк, хотя если посмотреть отладчик, объявление все-таки добавилось:


Объявление будет видно, если использовать метод Save(), класса XDocument.

XElement

Наиболее часто используемый объект API.
Имеет множество конструкторов, рассмотрим два из них:

public XElement ( XName name, object content);
public XElement ( XName name, params object [] content);

Первый конструктор – простейший случай, когда элемент не имеет дочерних элементов и мы задаем только его значение, второй конструктор – с заданием дочерних элементов, таких как элементы, атрибуты, инструкции обработки, комментарии (XComment) и т.д.

Создадим простейший элемент:

XElement element = new XElement ( "Element" , 777);
Console .WriteLine(element.ToString());
Console .WriteLine(( int )element);

Как видите доступ к значению стал еще проще благодаря переопределенному явному приведению элементов, достаточно привести элемент к его исходному типу, для того чтобы посмотреть его значение. XElement переопределяет явное приведение для всех простейших типов. Теперь даже к свойству Value обращаться нет необходимости.
Вы спросите, конструктор требует XName, а я передаю ему строку? И я вам отвечу: строка неявно приводится к объекту XName. По сути, XName – это и есть строка, только с возможностью задания пространства имен (XNamespace).

Приведу более детальный пример с созданием XML из объектов:

public sealed class Teacher
public Guid Id;
public string FirstName;
public string LastName;
>

XElement elements = new XElement ( "Teachers" ,
teachers.Select(t => new XElement ( "Teacher" ,
new XAttribute ( "Id" , t.Id),
new XElement ( "FirstName" , t.FirstName),
new XElement ( "LastName" , t.LastName))));

XAttribute


Как я уже и говорил ранее, является парой «ключ-значение» для коллекции атрибутов элемента. Создание и добавление атрибутов к элементу достаточно простая задача:
XAttribute attribute = new XAttribute ( "Id" , Guid .NewGuid());
XElement element = new XElement ( "Teachers" );
element.Add(attribute);
Console .WriteLine(element.ToString());
XElement element = new XElement ( "Teachers" ,
new XAttribute ( "Id" , Guid .NewGuid()));
Console .WriteLine(element.ToString());

XComment


Создание и добавление комментариев так же не вызывает никаких сложностей:
XElement teacherElement = new XElement ( "Teacher" ,
new XComment ( "Teacher element" ));
Console .WriteLine(teacherElement.ToString());

Заключение

На данном этапе я хотел бы закончить. Да, я не рассмотрел на примерах использование инструкций обработки, создание типов документа и другие классы модели, но данных знаний будет достаточно для создания как простых так и сложных по структуре XML документов.

В следующей статье я планирую рассмотреть проход по содержимому XML документа.

Создаём XML-файл

XML-формат предназначен для хранения данных, которые могут пригодиться в работе некоторых программ, сайтов и поддержки определённых языков разметки. Создать и открыть файл с таким форматом не сложно. Это вполне можно сделать, даже если на компьютере не установлено какое-либо специализированное программное обеспечение.

Немного об XML

Создавать XML-файлы можно как при помощи специализированных программ, так и встроенным в Windows текстовым редактором. От вида используемого ПО зависит удобство написания кода и уровень его функциональности.

Способ 1: Visual Studio

Создание документа в MS Visual Studio

Создание XML-файла в MS Visual Studio

В только что созданном файле уже будет первая строка с кодировкой и версией. По умолчанию прописана первая версия и кодировка UTF-8, которые вы можете поменять в любое время. Дальше для создания полноценного XML-файла вам нужно прописать всё то, что было в предыдущей инструкции.

Способ 2: Microsoft Excel

Можно создать XML-файл и не прописывая код, например, при помощи современных версий Microsoft Excel, который позволяет сохранять таблицы с данным расширением. Однако нужно понимать, что в этом случае создать что-то более функциональное обычной таблицы не получится.

Такой способ больше подойдёт тем, кто не хочет или не умеет работать с кодом. Однако в этом случае пользователь может столкнуться с определёнными проблемами при перезаписи файла в XML-формат. К сожалению, проделать операцию преобразования обычной таблицы в XML можно только на самых новых версиях MS Excel. Чтобы это сделать, используйте следующую пошаговую инструкцию:

Заполняем таблицу Excel

Сохранение таблицы

Выбор места сохранения

Способ 3: Блокнот

    Создайте обычный текстовый документ с расширением TXT. Разместить его можно где угодно. Откройте его.

Создание XML-файла

<?xml version="1.0" encoding="utf-8"?>

Задаём кодировку

Примерно так у вас должен выглядеть готовый результат:

Готовый документ

XML-компиляторы должны обработать этот код в виде таблицы с одной колонкой, где указаны данные о неком Иване Иванове.

Как видите в создании XML-файла нет ничего сложного. При желании его может создать любой пользователь, который более-менее умеет работать на компьютере. Однако для создания полноценного XML-файла рекомендуется изучить данный язык разметки, хотя бы на примитивном уровне.

Закрыть

Мы рады, что смогли помочь Вам в решении проблемы.

Отблагодарите автора, поделитесь статьей в социальных сетях.

Закрыть

Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.

Читайте также: