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
XSLT в Firefox | Книга AJAX
 

Подобно XML и XPath, реализация XSLT в Firefox отличается лизации в IE. Для выполнения преобразований Firefox, как и IE, доставляет класс XSLTProcessor, но на этом их сходство заканчиПервый шаг на пути выполнения преобразования в Firefox заключает¬ся в том, чтобы загрузить документы XML и XSL в объект DOM:
% var oXmlDom = zXmlDom.createOocumentO; var oXslDom = zXmlDom.createDocumentO;
« oXmlDom.async = false; - oXslDom.async = false;
oXmlDom.loadC'books.xml"); *i oXslDom.load("books.xsl");
Жжасс XSLTProcessor предоставляет метод importStylesheet(), который яринимает в виде аргумента объект XML DOM, содержащий документ XSLT:
var oXsltProcessor = new XSLTProcessorO; r oXsltProcessor.importStylesheet(oXslDom);
В заключение вызывается метод преобразования. Всего таких методов jbhu transformToDocumentO и transformToFragment(). Метод transformToDo-ai*ent() принимает в качестве аргумента объект XML DOM и возвра-новый документ XML DOM, содержащий результат преобразова-ш. Обычно этот метод и применяется:
tvar oNewDom = oXsltProcessor.transformToDocument(oXmlDom);
(одной объект XML DOM может использоваться как любой другой явъект XML DOM. Из него можно выбирать узлы с помощью XPath, явследовать структуру документа посредством свойств и методов объ¬екта или даже определить его на роль исходного документа в другом яреобразовании.
Метод transformToFragmentO, как следует из его названия, возвращает кент документа, который можно будет добавить в другой доку-. Этот метод принимает два аргумента: объект XML DOM исходно-иадокумента и объект DOM, к которому должен быть добавлен резуль-тят преобразования:
?pi»ar oFragment = oXsltProcessor. transformToFragment(oXmlDom, document); •» document.body.appendChild(oFragment);
этом примере выходной фрагмент документа добавляется в тело объ-document. Обратите внимание, что полученный фрагмент можно вить в любой узел документа в объекте DOM, который был пере методу transformToFragmentO.
I что делать, если требуется получить результат преобразования в ви-етроки, как это позволяет сделать метод transformNodeO, реализо-Microsoft? Для этих целей подходит класс XMLSerializer, о ко¬мы уже говорили. Достаточно передать результат преобразова-[ в метод serializeToString():
var oSerializer = new XMLSerializer(); var str = oSerializer.serializeToString(oNewDom);
Благодаря свойству xml библиотека zXml позволяет еще больше стить выполнение тех же действий:
var str = oFragment.xml; '
Кроме того, класс XSLTProcessor позволяет передавать в таблицу ст XSL значения параметров. Эта функциональность обеспечивается тодом setParamaterQ. Он принимает три аргумента: универсал идентификатор ресурса (URI) пространства имен, имя параметра и чение, присваиваемое параметру. Например:
oXsltProcessor.importStylesheet(oXslDom);
oXsltProcessor.setPararaeter(null, "message", "Список моих книг");
var oNewDom = oXsltProcessor.transformToDocument(oXmlDom);
В этом примере параметру message присваивается значение «С моих книг». Значение null, передаваемое вместо URI простран имен, позволяет обращаться к параметру без указания префикса ■ ответствующего URI пространства имен:

Метод setParameterQ должен вызываться перед обращением к м transformToDocumentO или transformToFragmentO, иначе значение метра не будет учтено в преобразовании.