C# для профессионалов. Том II - [9]
, объект на основе класса >TextWriter
, или объект на основе >XmlWriter
. Именно это было использовано при выполнении примера. Отметим новую запись в конце списка:
Если нужно создать документ с самого начала, можно использовать класс >XmlTextWriter
. Можно также использовать >XmlDocument
. Какой из них выбрать? Если данные, которые желательно поместить в XML, доступны и готовы для записи, то самым подходящий будет класс >XmlTextWriter
. Однако, если необходимо создавать документ XML постепенно, вставляя узлы в различные места, то наиболее приемлемым будет применение >XmlDocument
. Вот тот же пример, который только что был рассмотрен, но вместо редактирования текущего документа мы создаем новый документ (>DOMSample4
):
>private void button1_Click(object sender, System.EventArgs e) {
> // создать раздел объявлений
> XmlDeclaration newDoc=doc.CreateXmlDeclaration("1.0", null, null);
> doc.AppendChild(newDoc);
> // создать новый корневой элемент
> XmlElement newRoot=doc.CreateElement("newBookstore");
> doc.AppendChild(newRoot);
> // создать новый элемент 'book'
> XmlElement newBook=doc.CreateElement("book");
> // создать и задать атрибуты элемента "book"
> newBook.SetAttribute("genre","Mystery");
> newBook.SetAttribute("publicationdate", "2001");
> newBook.SetAttribute("ISBN", "123456789");
> // создать элемент 'title'
> XmlElement newTitle=doc.CreateElement("title");
> newTitle.InnerText="Case of the Missing Cookie";
> newBook.AppendChild(newTitle);
> // создать элемент author
> XmlElement newAuthor=doc.CreateElement("author");
> newBook.AppendChild(newAuthor);
> // создать элемент name
> XmlElement newName=doc.CreateElement("name");
> newName.InnerText="C. Monster";
> newAuthor.AppendChild(newName);
> // создать элемент price
> XmlElement newPrice=doc.CreateElement("price");
> newPrice.InnerText="9.95";
> newBook.AppendChild(newPrice);
> // добавить элемент 'book' к doc
> doc.DocumentElement.AppendChild(newBook);
> // записать на диск Note новое имя файла booksEdit.xml
> XmlTextWriter tr=new XmlTextWriter("..\\..\\..\\booksEdit.xml", null);
> tr.Formatting=Formatting.Indented; doc.WriteContentTo(tr);
> tr.Close();
> // загрузить заголовок в окно списка
> XmlNodeList nodeLst=doc.GetElementsByTagName("title");
> foreach(XmlNode node in nodeLst) listBox1.Items.Add(node.InnerText);
>}
>private void listBox1_SelectedIndexChanged(object sender, System.EventArgs e) {
> String srch="newBookstore/book[title='"+ listBox1.SelectedItem.ToString() + "']";
> XmlNode foundNode=doc.SelectSingleNode(srch);
> if (foundNode!=null) MessageBox.Show(foundNode.InnerText);
> else MessageBox.Show("Not found");
>}
Заметим, что изменились только две начальные строки. Прежде чем сделать >doc.Load
, внесем новые элементы:
>XmlDeclaration newDoc=doc.CreateXmlDeclaration("1.0", null, null);
>doc.AppendChild(newDoc);
>XmlElement newRoot=doc.CreateElement("newBookstore");
>doc.AppendChild(newRoot);
Сначала создается новый объект >XmlDeclaration
. Параметрами являются версия (в настоящее время всегда >"1.0"
), кодировка (>null
подразумевает >UTF-8
) и, наконец, флаг >standalone
. Он может быть >yes
или >no
, но если вводится null или пустая строка, как в нашем случае, этот атрибут не будет добавляться при сохранении документа. Параметр кодировки должен задаваться строкой, которая является частью класса >System.Text.Encoding
, если не используется >null
.
Следующим создаваемым элементом станет >DocumentElement
. В данном случае мы называем его >newBookstore
, чтобы можно было видеть различие. Остальная часть кода является такой же, как и в предыдущем примере, и работает точно так же. Вот файл >booksEdit.xml
, создаваемый этим кодом:
>
>
>
>
>
>
>
>
>
>
Мы не рассмотрели всех особенностей класса >XmlDocument
или других классов, способствующих созданию модели DOM в .NET. Однако мы видели мощь и гибкость, которые предлагает реализация DOM в .NET. Класс >XmlDocument
обычно используется, когда требуется случайный доступ к документу. Используйте классы на основе >XmlReader
, когда желательна модель потокового типа. Помните, что гибкость >XmlDocument
на основе >XmlNode
обеспечивается более высокими требованиями к памяти, поэтому подумайте тщательно о том, какой метод предпочтительнее в конкретной ситуации.
XPath и XslTransform
Мы рассмотрим >XPath
и >XslTransform
вместе, хотя они являются отдельными пространствами имен на платформе. >XPath
содержится в >System.Xml.XPath
, a >XslTransform
находится в >System.Xml.Xsl
. Причина совместного рассмотрения состоит в том, что >XPath
, в частности класс >XPathNavigator
, предоставляет ориентированный на производительность способ выполнения >XSLTransform
в .NET. Для начала рассмотрим >XPath
, а затем его использование в классах >System.Xsl
.
Пространство имен >XPath
создается для скорости. Оно позволяет только читать документы XML без возможностей редактирования. >XPath
создается для поверхностного выполнения быстрых итераций и выбора в документе XML. Функциональность
Java Enterprise Edition (Java EE) остается одной из ведущих технологий и платформ на основе Java. Данная книга представляет собой логичное пошаговое руководство, в котором подробно описаны многие спецификации и эталонные реализации Java EE 7. Работа с ними продемонстрирована на практических примерах. В этом фундаментальном издании также используется новейшая версия инструмента GlassFish, предназначенного для развертывания и администрирования примеров кода. Книга написана ведущим специалистом по обработке запросов на спецификацию Java EE, членом наблюдательного совета организации Java Community Process (JCP)
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
Это практическое руководство разработчика программного обеспечения на Visual Basic .NET и ADO.NET, предназначенное для создания приложений баз данных на основе WinForms, Web-форм и Web-служб. В книге описываются практические способы решения задач доступа к данным, с которыми сталкиваются разработчики на Visual Basic .NET в своей повседневной деятельности. Книга начинается с основных сведений о создании баз данных, использовании языка структурированных запросов SQL и системы управления базами данных Microsoft SQL Server 2000.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
Embedded system software. General requirements for development and documentationСтандарт подготовлен в развитие ГОСТ Р ИСО/МЭК 12207-99 «Информационная технология. Процессы жизненного цикла программных средств» с целью учета специфики разработки и документирования программного обеспечения встроенных систем реального времени.
«Как пасти котов» – это книга о лидерстве и руководстве, о том, как первое совмещать со вторым. Это, если хотите, словарь трудных случаев управления IT-проектами. Программист подобен кошке, которая гуляет сама по себе. Так уж исторически сложилось. Именно поэтому так непросто быть руководителем команды разработчиков. Даже если вы еще месяц назад были блестящим и дисциплинированным программистом и вдруг оказались в роли менеджера, вряд ли вы знаете, с чего надо начать, какой выбрать стиль руководства, как нанимать и увольнять сотрудников, проводить совещания, добиваться своевременного выполнения задач.