http://blagtalkan.ru
http://oktpoisk.ru
http://mysorru.ru/
http://san-okt.ru/
http://pes6evolution.ru/
http://chasikigov.ru
http://serafimsovet.ru
http://filmsgov.ru
http://free-domen.ru
http://fithonda.ru/forums/index.php
http://avtogov.ru
http://www.1001bilet.com.ua/base/on-line/
http://pravilavoini.ru
http://school41ufa.ru
http://rusrav4.ru
XML DOM в IE | Книга AJAX
 

Поддержка XML в IE 5.0 основана на библиотеке MSXML Activ Первоначальная версия компонента была написана для работы с тивными каналами (Active Channels) в IE 4.0 и не предназначалась
широкого применения, но веб-разработчики узнали о существовании компонента и начали его использовать. Microsoft в ответ на это выпус¬тила полностью модернизированную версию MSXML, которая была включена в состав IE 4.01.
Библиотека MSXML распространялась исключительно в составе IE. Та¬кое положение вещей сохранялось до 2001 г., когда Microsoft выпус¬тила MSXML 3.0 в виде отдельного дистрибутива, который можно бы¬ло скачать с сайта компании. Позднее в том же году была выпущена MSXML 4.0, и библиотека была переименована в Microsoft XML Core Services Component. Библиотека MSXML, появившаяся сначала в виде несложного синтаксического анализатора XML, доросла до полноцен¬ного компонента, способного проверять корректность документов XML, выполнять XSL-преобразования, поддерживающего пространст¬ва имен, прикладной интерфейс Simple API for XML (SAX - упрощен¬ный интерфейс для работы с документами XML) и отвечающего стан¬дартам W3C XPath и XML Schema, при этом производительность его улучшается с каждой новой версией.
Для того чтобы можно было создавать объекты ActiveX в JavaScript, Microsoft реализовала новый класс ActiveXObject. Конструктор этого класса принимает единственный аргумент - строку, содержащую вер-еню создаваемого объекта ActiveX; в данном случае это версия доку¬мента XML. Первому объекту XML DOM ActiveX в Microsoft дали на-вание Microsoft. XralDom, а создается он так:
var oXmlDom = new ActiveXObject("Microsoft.XmlDom");
Вновь созданный объект DOM XML ведет себя подобно любому друго¬му объекту DOM, позволяя перемещаться по дереву DOM и манипули¬ровать его узлами.
К моменту написания этих строк существовало пять различных вер-ош объекта MSXML DOM, строки версий которых перечислены ниже:
• Microsoft.XmlDom
• MSXML2. DOMDocument
• MSXML2.DOMDocument.3.0
• MSXML2.DOMDocument.4.0
• MSXML2.DOMDocument.5.0
MSXML - это реализация ActiveX, вследствие чего она доступна только в ОС Windows. IS5 для Mac 0S не имеет поддержки XML D0M.
Из ПЯТИ различных версий, наверное, лучше всего иметь дело с самой по-ыедней, определить которую поможет функция createDocumentO, авто¬матически создающая документ MSXML DOM самой последней1 версии:

Эта функция обходит в цикле массив aversions, содержащий строя версий документов MSXML DOM. Она начинает с самой последи из известных ей - с версии MSXML2. DOMDocument .5.0 - и пытается создай DOM документа. Если создание объекта увенчалось успехом, функцш завершается, возвращая созданный объект. В противном случае вш никшая исключительная ситуация будет перехвачена блоком try.J catch, цикл продолжит работу и будет произведена попытка создав] объект следующей, более старой версии. Если вообще не удалось оо| дать объект MSXML DOM, будет возбуждено исключение, сообщи щее о том, что библиотека MSXML отсутствует в системе. Эта функцш не является классом, поэтому она может использоваться как люб! другая функция, имеющая возвращаемое значение:
var oXffllDom = createDocumentO; j
Функция createDocument() гарантирует, что будет задействована сам последняя версия DOM документа. Итак, в нашем распоряжении me ется документ XML, и можно загрузить в него данные, представла ные в формате XML.
Загрузка данных формата XML в IE
MSXML поддерживает два метода, выполняющих загрузку XML: load
и loadXML(). Метод load() загружает файл из Интернета. Как и объя
XMLHttp , метод load() позволяет выполнять загрузку в синхронном вм
в асинхронном режимах. По умолчанию устанавливается асинхря
ный режим. Чтобы перейти в синхронный режим, надо в свойств
async объекта MSXML записать значение false: !
oXiilDo.li. async = false; J
В асинхронном режиме объект MSXML предоставляет свойство ready-State, которое может иметь те же пять состояний, что и свойство ready-State объекта XMLHttp.
Дополнительно объект DOM документа предоставляет возможность обработки события onreadystatechange, что позволяет отслеживать изме¬нение состояния свойства readyState. Поскольку асинхронный режим работы выбирается по умолчанию, записывать значение true в свойство ssync не обязательно:
oXmlDom.async = true;
oXmlDom.onreadystatechange = function () ■ { if;:(oXmlpom;:TeadyState^
В этом фрагменте выполняется загрузка гипотетического документа XML с именем myxml. xml в XML DOM. Когда свойство readyState примет значение 4, документ будет полностью загружен и будет исполнен код в блоке условного оператора if.
Второй способ загрузки данных формата XML, метод loadXMLQ, отли¬чается от метода load О тем, что загружает XML из строки. Эта строка должна содержать корректный код XML, как, например, здесь:
var sXml = "Jeremy McPeak";
oXnlDom.loadXML(sXml);
Данные XML, содержащиеся в переменной sXml, загружаются в доку¬мент oXmlDom. В случае применения метода loadXMLO нет нужды уста¬навливать значение свойства async или проверять свойство readyState, потому что этот метод не выполняет собственно загрузку с сервера.1