создать новую форму 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 позже в этой главе. Вот код обработчика событий для выбора записи в окне списка:

  protected void listBox1_SelectedIndexChanged (object sender, System.EventArgs e) {

   string srch=listBox1.SelectedItem.ToString();

   IXMLDOMNode nd=doc.selectSingleNode('bookstore/book[@ISBN='' + srch + '']');

   MessageBox.Show(nd.text);

  }

Теперь мы имеем обработчик события нажатия кнопки. Сначала мы загружаем файл books.xml — обратите внимание, что если файл выполняется не в папке

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату
×