2011-08-27 2 views
1

У меня есть веб-страница с множеством элементов, создаваемых пользователем, которые нужно «очистить», и я хотел бы, чтобы очистка была выражена как преобразование XSLT, потому что она вполне подходит для цели.Можно ли применить преобразование XSLT к элементу DOM?

Есть ли способ применить преобразование XSLT для части веб-страницы? (И должен ли элемент-источник быть проверен с помощью чего-то похожего на tagoup в первую очередь, чтобы убедиться, что он хорошо сформирован?)

Все примеры, которые я нахожу, - это получение XML-файла и файла XSL через Ajax и работая один против другого, но не принимая подмножество DOM и запуская XSLT на нем. Это можно сделать?

ответ

1

В каком контексте вы хотите это сделать? Документ («веб-страница») уже загружен в окне браузера? Некоторые браузеры предоставляют API для Javascript для применения XSLT к узлам DOM, например. Mozilla представила API и другие браузеры, такие как Opera, скопировали его: https://developer.mozilla.org/en/using_the_mozilla_javascript_interface_to_xsl_transformations.

И, конечно же, в браузере работает саксонский CE: http://www.saxonica.com/ce/doc/contents.html. Это даже позволяет применять XSLT 2.0 к узлам DOM.

+0

API Mozilla выглядит так, как будто я ищу, так много спасибо. Вы знаете, есть ли кросс-браузерное решение? (Я слышал о Saxon CE, но он по-прежнему очень альфа, требует большой загрузки и будет запрашивать коммерческую лицензию, когда она будет готова, я предпочел бы использовать преобразования в XSLT 1.0 в браузере, которых более чем достаточно для того, что я необходимость). – Bambax

+0

Что касается кросс-браузерного подхода, как я уже сказал, Opera поддерживает API Mozilla, я думаю, что Chrome и Safari на первый взгляд тоже, но я думаю, что вы столкнетесь с проблемами при его выполнении (см. Http: // stackoverflow. ком/вопросы/6985048/преобразуя-HTML-узлы-с-в-XSLT-хром-WebKit). IE не поддерживает этот API и даже с IE 9, который поддерживает документы XHTML и SVG DOM, я не думаю, что вы можете применить к ним XSLT, поскольку DOM, который реализует IE, полностью отделен от DOM, который MSXML, процессор Microsoft XSLT на базе Microsoft реализует соответственно потребляется в качестве входных деревьев XSLT. –

0

Поскольку HTML не является XML, я не думаю, что вы сможете выполнить преобразование XSLT на HTML-странице. Однако вы сможете сделать это на странице XHTML.