XML 3.0 (MSXML3.DLL) в C#
Как быть, если имеется большой объем кода, разработанного с помощью синтаксического анализатора компании Microsoft (в настоящее время XML 3.0)? Придется ли его выбросить и начать все сначала? А что если вам удобно использовать объектную модель XML 3.0 DOM? Нужно ли немедленно переключаться на .NET?
Ответом будет — нет. XML 3.0 может использоваться непосредственно в приложениях. Если добавить ссылку на msxml3.DLL в свое решение, то можно будет начать писать некоторый код.
Следующие несколько примеров будут использовать файл books.xml в качестве источника данных. Его можно загрузить с web-сайта издательства Wrox, он также включен в несколько примеров .NET SDK. Файл books.xml является каталогом книг воображаемого книжного склада. Он содержит такую информацию, как жанр, имя автора, цена и номер ISBN. Все примеры кода в этой главе также доступны на web-сайте издательства Wrox: www.wrox.com. Чтобы выполнить эти примеры, файлы данных XML должны находиться в структуре путей, которая выглядит примерно следующим образом:
>/XMLChapter/Sample1
>/XMLChapter/Sample2
>/XMLChapter/Sample3
и т. д. Файлы XML должны находиться в подкаталоге XMLChapter, а код для примеров должен быть в подкаталогах Sample1, Sample2 и т.д. Можно называть каталоги как угодно, но их относительное положение важно. Можно также изменять примеры, чтобы указать желаемое направление. В коде примеров будут сделаны указания, какие строки изменить.
Файл books.xml выглядит следующим образом:
>
>
>
>
> The Autobiography of Benjamin Franklin
>
> Benjamin
> Franklin
>
> 8.99
>
>
> The Confidence Man
>
> Herman
> Melville
>
> 11.99
>
>
> The Gorgias
>
> Plato
>
> 9.99
>
>
Рассмотрим пример кода, использующего MSXML 3.0 для загрузки окна списка с номерами ISBN из >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;
> ///
> /// Краткое описание Form1.
> ///
> public class Form1 : System.Windows.Forms.Form {
> private System.Windows.Forms.ListBox listBox1;
> private System.Windows.Forms.Button button1;
> ///
> /// Необходимая для Designer переменная.
> ///
> private System.ComponentModel.Container components;
Затем объявляется документ DOM на уровне модуля:
> private DOMDocument30 doc;
> public Form1() {
> //
> // Требуется для поддержки Windows Form Designer
> //
> InitializeComponent();
> //
> // TODO: Добавьте любой код конструктора после вызова