
XmlTextReader
XmlTextReader похож на SAX. Одно из различий заключается в том, что SAX является моделью типа рассылки (push), т.е. посылает данные приложению и разработчик должен быть готов принять их, a XmlTextReader применяет модель запроса (pull), где данные посылаются приложению, которое их запрашивает. Это предоставляет более простую и интуитивно понятную модель для программирования. Другое преимущество состоит в том, что модель запроса может быть избирательной в отношении данных, посылаемых приложению. Если нужны не все данные, то их не нужно обрабатывать. В модели рассылки все данные XML должны быть обработаны приложением, нужны они ему или нет.
Возьмем простой пример считывания данных XML, и затем более внимательно рассмотрим класс XmlTextReader. Код можно найти в папке XmlReaderSample1. Можно заменить метод button1_Click в предыдущем примере на следующий код. Эту версию данного кода можно найти в папке SampleBase2 загруженного архива кода. Не забудьте изменить:
using MSXML2;
на
using System.Xml;
Мы должны это сделать, поскольку используем теперь не MSXML 3.0, а пространство имен System.Xml. Нужно также удалить метод listBox1_SelectedIndexChanged, так как он включает в себя некоторые неподдерживаемые методы и строку:
private DOMDocument30 doc;
protected void button1_Click(object sender, System.EventArgs e) {
// Измените этот путь доступа, чтобы найти books.xml
string fileName = "..\\..\\..\\books.xml";
