LibKing » Книги » comp-programming » Симон Робинсон - C# для профессионалов. Том II

Симон Робинсон - C# для профессионалов. Том II

Тут можно читать онлайн Симон Робинсон - C# для профессионалов. Том II - бесплатно полную версию книги (целиком). Жанр: comp-programming, издательство Лори, год 2003. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте LibKing.Ru (ЛибКинг) или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
Симон Робинсон - C# для профессионалов. Том II
  • Название:
    C# для профессионалов. Том II
  • Автор:
  • Жанр:
  • Издательство:
    Лори
  • Год:
    2003
  • ISBN:
    5-85582-187-0
  • Рейтинг:
    4.87/5. Голосов: 81
  • Избранное:
    Добавить в избранное
  • Ваша оценка:

Симон Робинсон - C# для профессионалов. Том II краткое содержание

C# для профессионалов. Том II - описание и краткое содержание, автор Симон Робинсон, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru
C# для профессионалов

Платформа .NET предлагает новую среду, в которой можно разрабатывать практически любое приложение, действующее под управлением Windows, а язык C# — новый язык программирования, созданный специально для работы с .NET.

В этой книге представлены все основные концепции языка C# и платформы .NET. Полностью описывается синтаксис C#, приводятся примеры построения различных типов приложений с использованием C# — создание приложений и служб Windows, приложений и служб WWW при помощи ASP.NET, а также элементов управления Windows и WWW Рассматриваются общие библиотеки классов .NET, в частности, доступ к данным с помощью ADO.NET и доступ к службе Active Directory с применением классов DirectoryServices.

Для кого предназначена эта книга

Эта книга предназначена для опытных разработчиков, возможно, имеющих опыт программирования на VB, C++ или Java, но не использовавших ранее в своей работе язык C# и платформу .NET. Программистам, применяющим современные технологии, книга даст полное представление о том, как писать программы на C# для платформы .NET.

Основные темы книги

• Все особенности языка C#

• C# и объектно-ориентированное программирование

• Приложения и службы Windows

• Создание web-страниц и web-служб с помощью ASP NET

• Сборки .NET

• Доступ к данным при помощи ADO NET

• Создание распределённых приложений с помощью NET Remoting

• Интеграция с COM, COM+ и службой Active Directory

C# для профессионалов. Том II - читать онлайн бесплатно полную версию (весь текст целиком)

C# для профессионалов. Том II - читать книгу онлайн бесплатно, автор Симон Робинсон
Тёмная тема

Шрифт:

Сбросить

Интервал:

Закладка:

Сделать

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, создаваемый этим кодом:

C. Monster

9.95

Мы не рассмотрели всех особенностей класса 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

Пространство имен XPathсоздается для скорости. Оно позволяет только читать документы XML без возможностей редактирования. XPathсоздается для поверхностного выполнения быстрых итераций и выбора в документе XML. Функциональность XPathпредставляется классом XPathNavigator. Этот класс может использоваться вместо XmlDocument, XmlDataDocumentи XPathDocument. Если требуются средства редактирования, то следует выбрать XmlDocument; при работе с ADO.NET будет использоваться класс XmlDataDocument(мы увидим его позже в этой главе). Если имеет значение скорость, то применяйте в качестве хранилища XPathDocument. Можно расширить XPathNavigatorдля таких вещей, как файловая система или реестр в качестве хранилища. В следующей таблице перечислены классы XPathс кратким описанием назначения каждого класса:

Имя класса Описание
XPathDocument Представление всего документа XML. Только для чтения.
XPathNavigator Предоставляет навигационные возможности для XPathDocument.
XPathNodeIterator Обеспечивает итерацию по множеству узлов. Является эквивалентом для множества узлов в Xpath.
XPathExpression Компилированное выражение Xpath. Используется SelectNodes, SelectSingleNodes, Evaluateи Matches.
XPathException Класс исключений XPath.

XPathDocumentне предлагает никакой функциональности класса XmlDocument. Он имеет четыре перегружаемые версии, позволяющие открывать документ XML из файла или строки пути доступа, объекта TextReader, объекта XmlReaderили объекта на основе Stream.

Загрузим документ books.xmlи поработаем с ним, чтобы можно было понять, как действует навигация. Чтобы использовать эти примеры, необходимо добавить ссылки на пространства имен System.Xml.Xslи System.Xml.XPathследующим образом:

using System.Xml.XPath;

using System.Xml.Xsl;

Для данного примера воспользуемся файлом bookspath.xml. Он аналогичен books.xml, за исключением того, что добавлены дополнительные книги. Вот код формы, который находится в папке XPathXSLSample1:

private void button1_Click(object sender, System.EventArgs e) {

// изменить в соответствии с используемой структурой путей доступа

XPathDocument doc=new XPathDocument("..\\..\\..\\booksxpath.xml");

// создать XPathNavigator

XPathNavigator nav=((IXPathNavigable)doc).CreateNavigator();

// создать XPathNodeIterator узлов книг

// который имеют значение атрибута genre, совпадающее с novel

XPathNodeIterator iter=nav.Select("/bookstore/book[@genre='novel']");

while(iter.MoveNext()) {

LoadBook(iter.Current);

}

}

private void LoadBook(XPathNavigator lstNav) {

// Нам передали XPathNavigator определенного узла book,

// мы выберем всех прямых потомков и

// загрузим окно списка с именами и значениями

XPathNodeIterator iterBook=lstNav.SelectDescendants(XPathNodeType.Element, false);

while(iterBook.MoveNext())

listBox1.Items.Add(iterBook.Current.Name + ": " + iterBook.Current.Value);

Читать дальше
Тёмная тема

Шрифт:

Сбросить

Интервал:

Закладка:

Сделать


Симон Робинсон читать все книги автора по порядку

Симон Робинсон - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




C# для профессионалов. Том II отзывы


Отзывы читателей о книге C# для профессионалов. Том II, автор: Симон Робинсон. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
Большинство книг на сайте опубликовано легально на правах партнёрской программы ЛитРес. Если Ваша книга была опубликована с нарушениями авторских прав, пожалуйста, направьте Вашу жалобу на PGEgaHJlZj0ibWFpbHRvOmFidXNlQGxpYmtpbmcucnUiIHJlbD0ibm9mb2xsb3ciPmFidXNlQGxpYmtpbmcucnU8L2E+ или заполните форму обратной связи.
img img img img img