C# для профессионалов. Том II
Шрифт:
</author>
<price>8.99</price>
</book>
<book genre="novel" publicationdate="1967" ISBN="0-201-63361-2">
<title>The Confidence Man</title>
<author>
<first-name>Herman</first-name>
<last-name>Melville</last-name>
</author>
<price>11.99</price>
</book>
<book genre="philosophy" publicationdate="1991" ISBN="1-861001-57-6">
<title>The Gorgias</title>
<author>
<name>Plato</name>
</author>
<price>9.99</price>
</book>
</bookstore>
Рассмотрим
books.xml
. Ниже записан код, который можно найти в папке SampleBase1
архива, загружаемого с web-сайта издательства Wrox. Можно скопировать его в Visual Studio IDE или создать новую форму Windows Form с самого начала. Эта форма содержит элементы управления listbox
и button
. Оба элемента используют имена по умолчанию listBox1
и button1
: namespace SampleBase {
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
Затем включается пространство имен для ссылки на
msxml3.dll
. Помните, что ссылку на эту библиотеку необходимо включать в проект (ее можно найти на вкладке COM диалогового окна Add Reference). using MSXML2;
/// <summary>
/// Краткое описание Form1.
/// </summary>
public class Form1 : System.Windows.Forms.Form {
private System.Windows.Forms.ListBox listBox1;
private System.Windows.Forms.Button button1;
/// <summary>
/// Необходимая для Designer переменная.
/// </summary>
private System.ComponentModel.Container components;
Затем объявляется документ DOM на уровне модуля:
private DOMDocument30 doc;
public Form1 {
//
// Требуется для поддержки Windows Form Designer
//
InitializeComponent;
//
// TODO: Добавьте любой код конструктора после вызова
// InitializeComponent
//
}
/// <summary>
///
Очистить все использованные ресурсы.
/// </summary>
public override void Disposed {
base.Dispose;
if (components != null) components.Dispose;
}
#region Windows Form Designer создает код
/// <summary>
/// Необходимый для поддержки Designer метод — не изменяйте
/// содержимое этого метода редактором кода.
/// </summary>
private void InitializeComponent {
this.listBox1 = new System.Windows.Forms.ListBox;
this.button1 = new System.Windows.Forms.Button;
this.listBox1.Anchor = ((System.Windows.Forms.AnchorStyles.Top |
System.Windows.Forms.AnchorStyles.Left) |
System.Windows.Forms.AnchorStyles.Right);
this.listBox1.Size = new System.Drawing.Size(336, 238);
this.listBox1.TabIndex = 0;
this.listBox1.SelectedIndexChanged += new System.EventHandler(this.listBox1_SelectedIndexChanged);
this.button1.Anchor = System.Windows.Forms.AnchorStyles.Bottom;
this.button1.Location = new System.Drawing.Point(136, 264);
this.button1.TabIndex = 1;
this.button1.Text = "button1";
this.button1.Click += new System.EventHandler(this.button1_Click);
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(339, 320);
this.Controls.AddRange(new System.Windows.Forms.Control[]{this.button1, this.listBox1});
this.Text = "Form1";
}
#endregion
/// <summary>
/// Главная точка входа для приложения.
/// </summary>
[STAThread]
static void Main {
Application.Run(new Form1);
}
Мы хотим взять номер ISBN из
listbox
и, используя простой поиск XPath
, найти узел книги, который ему соответствует, и вывести текст узла (заглавие книги и цену) в MessageBox
. Язык пути доступа XML (XPath) является нотацией XML, которая может использоваться для запроса и фильтрации текста в документе XML. Рассмотрим XPath в .NET позже в этой главе. Вот код обработчика событий для выбора записи в окне списка:
Поделиться:
Популярные книги
Скандальная свадьба
1. Такие разные свадьбы
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Орден Багровой бури. Книга 5
5. Орден Багровой бури
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Адвокат Империи 7
7. Адвокат империи
Фантастика:
городское фэнтези
попаданцы
альтернативная история
аниме
фантастика: прочее
5.00
рейтинг книги
АН (цикл 11 книг)
Аномальный наследник
Фантастика:
фэнтези
героическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Сердце Дракона. нейросеть в мире боевых искусств (главы 1-650)
Фантастика:
фэнтези
героическая фантастика
боевая фантастика
7.51
рейтинг книги
Вспоминай меня ночью
Любовные романы:
современные любовные романы
эро литература
5.60
рейтинг книги
Адвокат вольного города 3
3. Адвокат
Фантастика:
городское фэнтези
альтернативная история
аниме
5.00
рейтинг книги
На границе империй. Том 9. Часть 5
18. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
Адвокат вольного города 4
4. Адвокат
Фантастика:
городское фэнтези
альтернативная история
аниме
5.00
рейтинг книги
Земная жена на экспорт
Любовные романы:
любовно-фантастические романы
5.57
рейтинг книги
Варлорд
3. Сопряжение
Фантастика:
боевая фантастика
постапокалипсис
рпг
5.00
рейтинг книги
Баронесса. Эхо забытой цивилизации
1. Проект «Фронтир Вита»
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Неудержимый. Книга XVII
17. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Чиновникъ Особых поручений
6. Александр Агренев
Фантастика:
попаданцы
альтернативная история
5.00