XML расшифровывается как
XML - это универсальный, независящий от платформы стандарт описания информациии, который можно использовать для представления иерархических данных и унификации передаваемой информации. Без его знания невозможно понимание aspx страницы в формате XHTML - переходном между HTML и XML, стандарт которого тоже определен W3C. Стандарт XHTML налагает более строгие правила на правильное формирование документа, аналогичные правилам XML.
Целью создания XML было обеспечение совместимости при передаче структурированных данных между разными системами обработки информации, особенно при передаче таких данных через Интернет. Словари, основанные на XML (например, RDF,
XML — это иерархическая структура, предназначенная для хранения любых данных, визуально структура может быть представлена как дерево. Важнейшее обязательное синтаксическое требование — то, что документ имеет только один корневой элемент (англ. root element) (альтернативно называемый элементом документа (англ. document element)). Это означает, что текст или другие данные всего документа должны быть расположены между единственным начальным корневым тегом и соответствующим ему конечным тегом.
XML создан для описания данных и фокусируется на том, что именно они из себя представляют. HTML создан для демонстрации данных и фокусируется на том, как данные выглядят. Если в традиционном HTML понятия "представление" и "визуализация" часто смешиваются, то при работе с XML мы четко разделяем эти понятия. Теги XML не предопределены создателями языка, в отличие от тегов HTML. Каждый автор документа сам определяет собственные теги.
Стандарт требует, чтобы программа, которая обрабатывает XML-документ, должна остановить работу, если обнаружила ошибку. А если браузер обнаружит непонятный тег в HTML, или отсутствие закрывающего тега, он это просто игнорирует.
В начале XML-документа обязательно появляется его декларация, или пролог. В нем указывается версия стандарта XML, которому он соответствует.
<?xml version="1.0" encoding="utf-8" ?>
Декларация не является частью XML-документа и не имеет закрывающего тега. В тексте XML-файла могут находиться комментарии в стиле HTML - <!-text -->.
XML-документ может иметь только один корневой элемент. В него могут быть вложены другие узлы, а в них, в свою очередь - другие. Каждому открывающему тегу XML должен соответствовать закрывающий тег. После завершающего тега корневого элемента не может быть других тегов. Теги XML чувствительны к регистру (
<b><i>Пример текста</b></i>
является ошибкой в XML.
У тегов могут быть атрибуты. Значения атрибутов должны быть заключены в кавычки. Порядок атрибутов значения не имеет. Между открывающим и закрывающими тегами может находится текст. В XML сохраняются все пробелы, находящиеся в тексте. Если текста нет, можно применить сокращенную форму записи. Пример тега XML:
<PROPERTY Label="ogl_extension" Value="4520" Itemtype="predefined" />
Это краткая форма тега
<PROPERTY Label="ogl_extension" Value="4520" Itemtype="predefined"></PROPERTY>
Существует атрибут xmlns, который определяет пространство имен. Значением его может быть любое уникальное имя. Существует договоренность использовать URL, так как они уникальны. Пространства имен имеют смысл, аналогичный их применению в .NET Framework - чтобы не смешивать одинаковые имена, используемые разными разработчиками. Название пространства имен отделяется от имени двоеточием.
XML-файлы представляют иерархическую информацию, которую можно представить в виде дерева с одним корнем.
Консорциум W3C принял стандарты на технологии и API для работы с XML-документами в самых разных средах и приложениях. Эти стандарты получили общее название "объектная модель документов" [Document Object Model (DOM)]. Классы, которые поддерживают DOM, обычно также поддерживают переход и модификацию произвольных секций XML-документов.
Объекты XmlDocument и XmlDataDocument являются представлением XML-данных в памяти, они используют DOM уровней 1 и 2 (DOM Level 1 и Level 2). Эти классы применяются для перемещения по XML-узлам и для их редактирования.
Класс XmlDataDocument происходит от класса XmlDocument и также является представлением реляционных данных. Содержимое объекта XmlDataDocument может храниться в формате , поддерживающем реляционное и нереляционное представление данных. Класс XmlDataDocument содержится в сборке System.Data.dll.
Эти классы поддерживают довольно много методов для реализации спецификации DOM Level 2, а также включают методы, упрощающие манипулирование ХМL-данными. Обсуждаемые здесь методы перечислены в табл. 4-5. Класс XmlDocument поддерживает все методы для создания объектов XmlElement и XmlAttribute.
Объект XPathDocument представляет собой кэшированный объект XmlDocument, доступный только для чтения, пригодный для оперативного выполнения CreateNavigator.
Класс XmlConvert включает многочисленные статические методы, предназначенные для "List Price*, то при попытке создать соответствующий ему элемент или атрибут будет сгенерировано исключение из-за пробела в имени. Преобразование имени с помощью класса XmlConvert приведет к замене пробела значением _0х0020_, в результате имя XML-элемента примет вид List_x0020_Price. Впоследствии это имя можно будет декодировать с помошью метода XmlConvert. .
Класс XmlConvert также поддерживает множество статических методов для преобразования строк в числовые значения.
Класс DocumentNavigator — эффективное средство для перемещения по XmlDocument с использованием языка XPathNavigator, применяя модель курсора и XPathNavigator поддерживает
Класс XmlNodeReader предоставляет последовательный однонаправленный доступ к данным объектов XmlDocument и XmlDataDocument. Он позволяет начать чтение с заданного узла объекта XmlDocument, а затем поочередно читает следующие узлы.
Класс XmlTextWriter предоставляет последовательный однонаправленный доступ без кэширования к данным XML. Он анализирует XML-маркеры, но не представляет XML-данные с помощью DOM. Класс XmlTextReader проверяет не содержимое документа, а только ХМ L-код.
Класс XmlTextWriter предоставляет последовательный однонаправленный доступ для записи XML-данных без кэширования в потоки и файлы. При этом данные проверяются на соответствие >WЗС-стандарту XML версии 1.0. Класс XmlTextWriter поддерживает пространства имен и средства разрешения конфликтов пространств имен.
Класс читает XML-данные и проверяет их на соответствие определениям DTD,
Класс XslTransform преобразует XML-документ, применяя таблицу стилей XslTransform поддерживает синтаксис Load и Transform.
Метод Load загружает таблицу стилей Transform используется для выполнения преобразования. Transform имеет несколько перегруженных версий, но в качестве первого параметра обычно принимает XmlDocument или XmlNode, а Класс
С помощью класса можно быстрее, чем другими методами, получить данные из XML-документов.
- это Create передается объект класса XmlReaderSettings. Эта функция подсчитывает число узлов в документе.
using System.Xml;
using System.IO;
private int CountNodes(string xmlFile)
{
int NodesCount=0;
XmlReaderSettings settings = new XmlReaderSettings();
settings.IgnoreWhitespace = true;
settings.IgnoreComments = true;
using (XmlReader reader = XmlReader.Create(xmlFile, settings))
{
while (reader.Read())
{
if (reader.NodeType == XmlNodeType.Element)
{
NodesCount++;
}
}
}
return NodesCount;
}
Класс позволяет извлекать из документа классы CLR. Пусть у нас есть меню ресторана.
Класс обеспечивает чтение и хранение в памяти XML-документов для трансформаций с помощью
Возьмем XML-документ "Quotes.xml" и файл трансформации "Quotes.. В выходной поток страницы будет направлен результат преобразования XML-документа.
<% XPathDocument doc = new PathDocument(Server.MapPath("App_Data\\Quotes.xml"));
XslCompiledTransform xsl = new XslCompiledTransform();
xsl.Load(Server.MapPath("App_Data\\Quotes.xsl"));
xsl.Transform(doc, null, Response.OutputStream); %>
Благодаря тому, что в файле трансформации определены табличные теги, на странице появится таблица с нужной информацией.
Элемент управления XML предоставляет способ преобразовать XML-документ, используя таблицу стилей DocumentSource позволяют задать XML-файл, в котором находятся данные, TransformSource - файл трансформации
<asp:Xml ID="Xml1" runat="server" DocumentSource="~/App_Code/Quotes.xml"
TransformSource="~/App_Data /Quotes.xsl"></asp:Xml>
Элемент - источник данных XMLDataSource обеспечивает простой способ подключения XML-документов как источников данных к элементам, отображающим информацию. Также можно задать запрос , он позволяет редактировать, удалять, добавлять записи данных. Для этого нужно получить доступ к находящемуся в нем объекту XmlDataDocument с помощью вызова метода GetXmlDocument. После редактирования документ сохраняется с помощью метода Save.
В отличие от табличных данных в СУБД, данные в XML-файлах иерархичны, поэтому XMLDataSource удобно привязывать к иерархичным элементам управления, например Menu.
Так как в приложениях XML-данные используются все чаще и чаще, был введен метод XMLDataSource.
<% XPathBinder.Eval(Container.DataItem, "name"); %>
Как и при связывании с помощью , можно сокращенно писать:
<%# XPath("name")%>
Так же, как и у DataBinder, метод Eval класса XPathBinder поддерживает строки форматирования:
<% XPath("employees/employee/HireDate",
"{0:mm dd yyyy}") %>
Применим этот синтаксис в элементе , который получает данные из источника данных XmlDataSource:
<asp:XmlDataSource ID="XmlDataSource1" runat="server"
DataFile="~/nobel.xml" XPath="//nobel/literature/writer">
</asp:XmlDataSource>
<asp:DataList ID="DataList1" DataSourceID="XmlDataSource1"
runat="server">
<ItemTemplate>
<p>
<%# XPath("name")%> получил премию по литературе в
<%# XPath("winningdate")%>
за произведение <%# XPath("work")%>
</b>
</p>
</ItemTemplate>
</asp:DataList>
Чтобы создать XmlDocument, следует создать объект XmlDocument. Объект XmlDocument поддерживает методы CreateElement и CreateAttribute, используемые для добавления узлов в объект XmlDocument. Объект XmlElement содержит свойство Attributes, в которое входит набор XmlAttributeCollection. Класс XmlAttributeCollection происходит от класса XmlNamedNodeMap, представляющего собой набор пар "имя—значение".
protected void Button1_Click(object sender, EventArgs e) {
//Объявить и создать XmlDocument XmlDocument xmlDoc = new XmlDocumentО;
XmlElement el;
int childCounter;
int grandChildCounter;
//Создать описание xml xmlDoc.AppendChild(
xmlDoc.CreateXmlDeclaration("1.0", "utf-8", null));
//Создать корневой узел и добавить его в документ
el = xmlDoc.CreateElementC'myRoot");
xmlDoc.AppendChild(el);
//Цикл для обработки дочерних узлов
for (childCounter = 1; childCounter <= 4; childCounter++) {
XmlElement childelmt; XmlAttribute childattr;
//Создать дочерний узел с атрибутом ID
childelmt = xmlDoc.CreateElement("myChild");
childattr = xmlDoc.CreateAttribute("ID");
childattr. Value = childCounter. ToStringO;
childelmt.Att ributes.Append(childatt r);
//Добавить элемент в корневой элемент el.AppendChild(childelmt);
for (grandChildCounter = 1; grandChildCounter <= 3; grandChildCounter++) {
//Создать "внучатый" узел
childelmt.AppendChild(xmlDoc.CreateElement("Grandchild"));
}
}
//Сохранить в файл
xmlDoc.Save(MapPath("XmlDocumentTest.xml"));
Label lbl = GetLabel(275, 20);
lbl.Text = "XmlDocumentTest.xml Created";
}
Сначала создается экземпляр класса XmlDocument. Далее описание XML создается и помещается в набор дочерних узлов. Если этот узел окажется не первым дочерним узлом XmlDocument, будет сгенерировано исключение. Ниже приводится XML-файл, сгенерированный при выполнении показанного выше кода:
<?xml version="1.О" encoding="utf-8" ?>
<myRoot>
<myChild ID="1">
<GrandChild />
<GrandChild />
<GrandChild />
</myChild>
<myChild ID="2">
<GrandChild />
<GrandChild />
<GrandChild />
</myChild>
<myChild ID="3 ">
<GrandChild />
<GrandChild />
<GrandChild />
</myChild>
<myChild ID=*'4">
<GrandChild />
<GrandChild />
<GrandChild />
</nyCnild>
</myRoot>
Код, представленный выше, подходит и для объекта XmlDataDocument, но объект XmlDataDocument имеет больше возможностей для работы с реляционными данными.
Чтобы получить доступ к классам XML, достаточно добавить using System.Xml.
Пространство имен System.Xml дополняется также файлом System.Data.dll, где размещен класс XmlDataDocument. Если для работы требуется указанный класс, следует установить ссылку на файл System.Data.dll.
Класс —
Класс поддерживает чтение XML-данных из потока или файла. Он определяет методы и свойства, которые позволяют перемещаться по данным и считывать содержимое узлов. Текущим является узел, на котором расположен модуль чтения. Модуль чтения расширен с помощью методов чтения и свойств, возвращающих значение текущего узла.
Класс позволяет следующее.
StringBuilder output = new StringBuilder();
String xmlString =
@"<bookstore>
<book genre='роман'>
<title>Сто лет одиночества</title>
<author>
<first-name>Габриэль</first-name>
<last-name>Маркес</last-name>
</author>
<price>120rur</price>
</book>
</bookstore>";
// Создание XmlReader
using (XmlReader reader = XmlReader.Create(new StringReader(xmlString)))
{
reader.ReadToFollowing("book");
reader.MoveToFirstAttribute();
string genre = reader.Value;
output.AppendLine("The genre value: " + genre);
reader.ReadToFollowing("title");
output.AppendLine("Content of the title element: " +
reader.ReadElementContentAsString());
}
Label1.Text = output.ToString();
В результате, в качестве текста элемента управления Label1 получим следующее:
The genre value: роман Content of the title element: Сто лет одиночества
Класс XmlWriter записывает XML-данные в поток, файл, TextReader или строку.
Класс XmlWriter записывает XML-данные в поток, файл, TextReader или строку. Предоставляет средства для создания XML-данных правильного формата однопроходным способом с возможностью только для записи без кэширования. Класс XmlWriter поддерживает рекомендации W3C XML 1.0 и пространств имен в XML. В этом разделе рассматривается создание экземпляра XmlWriter с указанным набором функций, проверкой соответствия данных, записи типизированных данных и т. д.
string xmlFile = Request.PhysicalApplicationPath + @"App_Data\BookStore.xml";
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.ConformanceLevel = ConformanceLevel.Auto;
settings.OmitXmlDeclaration = false;
using (XmlWriter writer = XmlWriter.Create(xmlFile, settings))
{
writer.WriteStartDocument(false);
writer.WriteComment("Комментарий.");
writer.WriteStartElement("books");
writer.WriteStartElement("book");
writer.WriteElementString("id","1");
writer.WriteElementString("name", "Сто лет одиночества");
writer.WriteElementString("author", "Габриэль Гарсиа Маркес");
writer.WriteElementString("price","120rur");
writer.WriteEndElement();
writer.WriteEndElement();
writer.Flush();
}
Записанный Xml файл:
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!-- Комментарий -->
<books>
<book>
<id> 1 </id>
<name> Сто лет одиночества </name>
<author> Габриэль Гарсиа Маркес </author>
<price> 120rur </price>
</book>
</books>
XML расшифровывается как
XML - это универсальный, независящий от платформы стандарт описания информациии, который можно использовать для представления иерархических данных и унификации передаваемой информации. Без его знания невозможно понимание aspx страницы в формате XHTML - переходном между HTML и XML, стандарт которого тоже определен W3C. Стандарт XHTML налагает более строгие правила на правильное формирование документа, аналогичные правилам XML.
Целью создания XML было обеспечение совместимости при передаче структурированных данных между разными системами обработки информации, особенно при передаче таких данных через Интернет. Словари, основанные на XML (например, RDF,
XML — это иерархическая структура, предназначенная для хранения любых данных, визуально структура может быть представлена как дерево. Важнейшее обязательное синтаксическое требование — то, что документ имеет только один корневой элемент (англ. root element) (альтернативно называемый элементом документа (англ. document element)). Это означает, что текст или другие данные всего документа должны быть расположены между единственным начальным корневым тегом и соответствующим ему конечным тегом.
XML создан для описания данных и фокусируется на том, что именно они из себя представляют. HTML создан для демонстрации данных и фокусируется на том, как данные выглядят. Если в традиционном HTML понятия "представление" и "визуализация" часто смешиваются, то при работе с XML мы четко разделяем эти понятия. Теги XML не предопределены создателями языка, в отличие от тегов HTML. Каждый автор документа сам определяет собственные теги.
Стандарт требует, чтобы программа, которая обрабатывает XML-документ, должна остановить работу, если обнаружила ошибку. А если браузер обнаружит непонятный тег в HTML, или отсутствие закрывающего тега, он это просто игнорирует.
В начале XML-документа обязательно появляется его декларация, или пролог. В нем указывается версия стандарта XML, которому он соответствует.
<?xml version="1.0" encoding="utf-8" ?>
Декларация не является частью XML-документа и не имеет закрывающего тега. В тексте XML-файла могут находиться комментарии в стиле HTML - <!-text -->.
XML-документ может иметь только один корневой элемент. В него могут быть вложены другие узлы, а в них, в свою очередь - другие. Каждому открывающему тегу XML должен соответствовать закрывающий тег. После завершающего тега корневого элемента не может быть других тегов. Теги XML чувствительны к регистру (
<b><i>Пример текста</b></i>
является ошибкой в XML.
У тегов могут быть атрибуты. Значения атрибутов должны быть заключены в кавычки. Порядок атрибутов значения не имеет. Между открывающим и закрывающими тегами может находится текст. В XML сохраняются все пробелы, находящиеся в тексте. Если текста нет, можно применить сокращенную форму записи. Пример тега XML:
<PROPERTY Label="ogl_extension" Value="4520" Itemtype="predefined" />
Это краткая форма тега
<PROPERTY Label="ogl_extension" Value="4520" Itemtype="predefined"></PROPERTY>
Существует атрибут xmlns, который определяет пространство имен. Значением его может быть любое уникальное имя. Существует договоренность использовать URL, так как они уникальны. Пространства имен имеют смысл, аналогичный их применению в .NET Framework - чтобы не смешивать одинаковые имена, используемые разными разработчиками. Название пространства имен отделяется от имени двоеточием.
XML-файлы представляют иерархическую информацию, которую можно представить в виде дерева с одним корнем.
Консорциум W3C принял стандарты на технологии и API для работы с XML-документами в самых разных средах и приложениях. Эти стандарты получили общее название "объектная модель документов" [Document Object Model (DOM)]. Классы, которые поддерживают DOM, обычно также поддерживают переход и модификацию произвольных секций XML-документов.
Объекты XmlDocument и XmlDataDocument являются представлением XML-данных в памяти, они используют DOM уровней 1 и 2 (DOM Level 1 и Level 2). Эти классы применяются для перемещения по XML-узлам и для их редактирования.
Класс XmlDataDocument происходит от класса XmlDocument и также является представлением реляционных данных. Содержимое объекта XmlDataDocument может храниться в формате , поддерживающем реляционное и нереляционное представление данных. Класс XmlDataDocument содержится в сборке System.Data.dll.
Эти классы поддерживают довольно много методов для реализации спецификации DOM Level 2, а также включают методы, упрощающие манипулирование ХМL-данными. Обсуждаемые здесь методы перечислены в табл. 4-5. Класс XmlDocument поддерживает все методы для создания объектов XmlElement и XmlAttribute.
Объект XPathDocument представляет собой кэшированный объект XmlDocument, доступный только для чтения, пригодный для оперативного выполнения CreateNavigator.
Класс XmlConvert включает многочисленные статические методы, предназначенные для "List Price*, то при попытке создать соответствующий ему элемент или атрибут будет сгенерировано исключение из-за пробела в имени. Преобразование имени с помощью класса XmlConvert приведет к замене пробела значением _0х0020_, в результате имя XML-элемента примет вид List_x0020_Price. Впоследствии это имя можно будет декодировать с помошью метода XmlConvert. .
Класс XmlConvert также поддерживает множество статических методов для преобразования строк в числовые значения.
Класс DocumentNavigator — эффективное средство для перемещения по XmlDocument с использованием языка XPathNavigator, применяя модель курсора и XPathNavigator поддерживает
Класс XmlNodeReader предоставляет последовательный однонаправленный доступ к данным объектов XmlDocument и XmlDataDocument. Он позволяет начать чтение с заданного узла объекта XmlDocument, а затем поочередно читает следующие узлы.
Класс XmlTextWriter предоставляет последовательный однонаправленный доступ без кэширования к данным XML. Он анализирует XML-маркеры, но не представляет XML-данные с помощью DOM. Класс XmlTextReader проверяет не содержимое документа, а только ХМ L-код.
Класс XmlTextWriter предоставляет последовательный однонаправленный доступ для записи XML-данных без кэширования в потоки и файлы. При этом данные проверяются на соответствие >WЗС-стандарту XML версии 1.0. Класс XmlTextWriter поддерживает пространства имен и средства разрешения конфликтов пространств имен.
Класс читает XML-данные и проверяет их на соответствие определениям DTD,
Класс XslTransform преобразует XML-документ, применяя таблицу стилей XslTransform поддерживает синтаксис Load и Transform.
Метод Load загружает таблицу стилей Transform используется для выполнения преобразования. Transform имеет несколько перегруженных версий, но в качестве первого параметра обычно принимает XmlDocument или XmlNode, а Класс
С помощью класса можно быстрее, чем другими методами, получить данные из XML-документов.
- это Create передается объект класса XmlReaderSettings. Эта функция подсчитывает число узлов в документе.
using System.Xml;
using System.IO;
private int CountNodes(string xmlFile)
{
int NodesCount=0;
XmlReaderSettings settings = new XmlReaderSettings();
settings.IgnoreWhitespace = true;
settings.IgnoreComments = true;
using (XmlReader reader = XmlReader.Create(xmlFile, settings))
{
while (reader.Read())
{
if (reader.NodeType == XmlNodeType.Element)
{
NodesCount++;
}
}
}
return NodesCount;
}
Класс позволяет извлекать из документа классы CLR. Пусть у нас есть меню ресторана.
Класс обеспечивает чтение и хранение в памяти XML-документов для трансформаций с помощью
Возьмем XML-документ "Quotes.xml" и файл трансформации "Quotes.. В выходной поток страницы будет направлен результат преобразования XML-документа.
<% XPathDocument doc = new PathDocument(Server.MapPath("App_Data\\Quotes.xml"));
XslCompiledTransform xsl = new XslCompiledTransform();
xsl.Load(Server.MapPath("App_Data\\Quotes.xsl"));
xsl.Transform(doc, null, Response.OutputStream); %>
Благодаря тому, что в файле трансформации определены табличные теги, на странице появится таблица с нужной информацией.
Элемент управления XML предоставляет способ преобразовать XML-документ, используя таблицу стилей DocumentSource позволяют задать XML-файл, в котором находятся данные, TransformSource - файл трансформации
<asp:Xml ID="Xml1" runat="server" DocumentSource="~/App_Code/Quotes.xml"
TransformSource="~/App_Data /Quotes.xsl"></asp:Xml>
Элемент - источник данных XMLDataSource обеспечивает простой способ подключения XML-документов как источников данных к элементам, отображающим информацию. Также можно задать запрос , он позволяет редактировать, удалять, добавлять записи данных. Для этого нужно получить доступ к находящемуся в нем объекту XmlDataDocument с помощью вызова метода GetXmlDocument. После редактирования документ сохраняется с помощью метода Save.
В отличие от табличных данных в СУБД, данные в XML-файлах иерархичны, поэтому XMLDataSource удобно привязывать к иерархичным элементам управления, например Menu.
Так как в приложениях XML-данные используются все чаще и чаще, был введен метод XMLDataSource.
<% XPathBinder.Eval(Container.DataItem, "name"); %>
Как и при связывании с помощью , можно сокращенно писать:
<%# XPath("name")%>
Так же, как и у DataBinder, метод Eval класса XPathBinder поддерживает строки форматирования:
<% XPath("employees/employee/HireDate",
"{0:mm dd yyyy}") %>
Применим этот синтаксис в элементе , который получает данные из источника данных XmlDataSource:
<asp:XmlDataSource ID="XmlDataSource1" runat="server"
DataFile="~/nobel.xml" XPath="//nobel/literature/writer">
</asp:XmlDataSource>
<asp:DataList ID="DataList1" DataSourceID="XmlDataSource1"
runat="server">
<ItemTemplate>
<p>
<%# XPath("name")%> получил премию по литературе в
<%# XPath("winningdate")%>
за произведение <%# XPath("work")%>
</b>
</p>
</ItemTemplate>
</asp:DataList>
Чтобы создать XmlDocument, следует создать объект XmlDocument. Объект XmlDocument поддерживает методы CreateElement и CreateAttribute, используемые для добавления узлов в объект XmlDocument. Объект XmlElement содержит свойство Attributes, в которое входит набор XmlAttributeCollection. Класс XmlAttributeCollection происходит от класса XmlNamedNodeMap, представляющего собой набор пар "имя—значение".
protected void Button1_Click(object sender, EventArgs e) {
//Объявить и создать XmlDocument XmlDocument xmlDoc = new XmlDocumentО;
XmlElement el;
int childCounter;
int grandChildCounter;
//Создать описание xml xmlDoc.AppendChild(
xmlDoc.CreateXmlDeclaration("1.0", "utf-8", null));
//Создать корневой узел и добавить его в документ
el = xmlDoc.CreateElementC'myRoot");
xmlDoc.AppendChild(el);
//Цикл для обработки дочерних узлов
for (childCounter = 1; childCounter <= 4; childCounter++) {
XmlElement childelmt; XmlAttribute childattr;
//Создать дочерний узел с атрибутом ID
childelmt = xmlDoc.CreateElement("myChild");
childattr = xmlDoc.CreateAttribute("ID");
childattr. Value = childCounter. ToStringO;
childelmt.Att ributes.Append(childatt r);
//Добавить элемент в корневой элемент el.AppendChild(childelmt);
for (grandChildCounter = 1; grandChildCounter <= 3; grandChildCounter++) {
//Создать "внучатый" узел
childelmt.AppendChild(xmlDoc.CreateElement("Grandchild"));
}
}
//Сохранить в файл
xmlDoc.Save(MapPath("XmlDocumentTest.xml"));
Label lbl = GetLabel(275, 20);
lbl.Text = "XmlDocumentTest.xml Created";
}
Сначала создается экземпляр класса XmlDocument. Далее описание XML создается и помещается в набор дочерних узлов. Если этот узел окажется не первым дочерним узлом XmlDocument, будет сгенерировано исключение. Ниже приводится XML-файл, сгенерированный при выполнении показанного выше кода:
<?xml version="1.О" encoding="utf-8" ?>
<myRoot>
<myChild ID="1">
<GrandChild />
<GrandChild />
<GrandChild />
</myChild>
<myChild ID="2">
<GrandChild />
<GrandChild />
<GrandChild />
</myChild>
<myChild ID="3 ">
<GrandChild />
<GrandChild />
<GrandChild />
</myChild>
<myChild ID=*'4">
<GrandChild />
<GrandChild />
<GrandChild />
</nyCnild>
</myRoot>
Код, представленный выше, подходит и для объекта XmlDataDocument, но объект XmlDataDocument имеет больше возможностей для работы с реляционными данными.
Чтобы получить доступ к классам XML, достаточно добавить using System.Xml.
Пространство имен System.Xml дополняется также файлом System.Data.dll, где размещен класс XmlDataDocument. Если для работы требуется указанный класс, следует установить ссылку на файл System.Data.dll.
Класс —
Класс поддерживает чтение XML-данных из потока или файла. Он определяет методы и свойства, которые позволяют перемещаться по данным и считывать содержимое узлов. Текущим является узел, на котором расположен модуль чтения. Модуль чтения расширен с помощью методов чтения и свойств, возвращающих значение текущего узла.
Класс позволяет следующее.
StringBuilder output = new StringBuilder();
String xmlString =
@"<bookstore>
<book genre='роман'>
<title>Сто лет одиночества</title>
<author>
<first-name>Габриэль</first-name>
<last-name>Маркес</last-name>
</author>
<price>120rur</price>
</book>
</bookstore>";
// Создание XmlReader
using (XmlReader reader = XmlReader.Create(new StringReader(xmlString)))
{
reader.ReadToFollowing("book");
reader.MoveToFirstAttribute();
string genre = reader.Value;
output.AppendLine("The genre value: " + genre);
reader.ReadToFollowing("title");
output.AppendLine("Content of the title element: " +
reader.ReadElementContentAsString());
}
Label1.Text = output.ToString();
В результате, в качестве текста элемента управления Label1 получим следующее:
The genre value: роман Content of the title element: Сто лет одиночества
Класс XmlWriter записывает XML-данные в поток, файл, TextReader или строку.
Класс XmlWriter записывает XML-данные в поток, файл, TextReader или строку. Предоставляет средства для создания XML-данных правильного формата однопроходным способом с возможностью только для записи без кэширования. Класс XmlWriter поддерживает рекомендации W3C XML 1.0 и пространств имен в XML. В этом разделе рассматривается создание экземпляра XmlWriter с указанным набором функций, проверкой соответствия данных, записи типизированных данных и т. д.
string xmlFile = Request.PhysicalApplicationPath + @"App_Data\BookStore.xml";
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.ConformanceLevel = ConformanceLevel.Auto;
settings.OmitXmlDeclaration = false;
using (XmlWriter writer = XmlWriter.Create(xmlFile, settings))
{
writer.WriteStartDocument(false);
writer.WriteComment("Комментарий.");
writer.WriteStartElement("books");
writer.WriteStartElement("book");
writer.WriteElementString("id","1");
writer.WriteElementString("name", "Сто лет одиночества");
writer.WriteElementString("author", "Габриэль Гарсиа Маркес");
writer.WriteElementString("price","120rur");
writer.WriteEndElement();
writer.WriteEndElement();
writer.Flush();
}
Записанный Xml файл:
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!-- Комментарий -->
<books>
<book>
<id> 1 </id>
<name> Сто лет одиночества </name>
<author> Габриэль Гарсиа Маркес </author>
<price> 120rur </price>
</book>
</books>
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.