Вход/Регистрация
C# для профессионалов. Том II
вернуться

Ватсон Карли

Шрифт:

/// <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
— обратите внимание, что если файл выполняется не в папке
bin/debug
или
bin/release
, необходимо исправить соответствующим образом путь доступа:

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

doc=new DOMDocument30;

doc.load("..\\..\\..\\books.xml")

Следующие строки объявляют, что узлы являются

nodeList
узлов книг. В данном случае имеется три узла:

IXMLDOMNodeList nodes;

nodes = doc.selectNodes("bookstore/book");

IXMLDOMNode node=nodes.nextNode;

Мы просматриваем узлы в цикле и добавляем текстовое значение атрибута ISBN в

listBox1
:

while(node!=null) {

listBox1.Items.Add(node.attributes.getNamedItem("ISBN").text);

node=nodes.nextNode;

}

}

 }

}

Вот как выглядит пример во время выполнения:

Это изображение появляется после того, как была нажата кнопка button1 и загрузился listBox1 с номерами ISBN книг. После выбора номера ISBN будет выведено следующее:

System.Xml

Пространство имен

System.Xml
является мощным и относительно простым для использования, но оно отличается от модели MSXML 3.0. Если вы знакомы с MSXML 3.0, то применяйте его, пока не освоитесь с пространством имен
System.Xml
. Пространство имен
System.Xml
предлагает большую гибкость и легче расширяется.

Этот файл XML будет использоваться в примерах этой главы. Код, который только что был рассмотрен, лежит в основе нескольких примеров. В большинстве других будет показан только код, имеющий отношение к делу, и не будет повторяться то, что уже было показано.

  • Читать дальше
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: