Как мне написать букмарклет, который применяет заданную таблицу стилей XSLT к файлу XML, который отображается, например, в Firefox? XML-документ уже загружен в браузер и отображается без таблицы стилей, а XSLT доступен по фиксированному URL-адресу, который должен быть закодирован в букмарклете.
букмарклет для применения таблицы стилей xslt к отображаемому xml-файлу
comment
Отображается ли сам XML-документ в окне браузера? Или он уже преобразован таблицей стилей XSLT? Как/где дается таблица стилей? API Mozilla XSLT задокументирован здесь: developer.mozilla.org/en/
- person Martin Honnen   schedule 04.11.2010
Ответы (2)
Вот пример:
Букмарклет для применения таблицы стилей XSLT к XML-документу — просто вставьте xsl в кодировке base64 в atob («») — проверено на firefox
javascript: (function() {
var parser = new DOMParser();
var ss = parser.parseFromString(atob(""), 'application/xml');
var xsltProcessor = new XSLTProcessor();
xsltProcessor.importStylesheet(ss);
var newdoc = xsltProcessor.transformToDocument(content.document);
var myWindow = window.open("data:text/html," + encodeURIComponent(newdoc.documentElement.innerHTML), "_blank", "");
myWindow.focus();
}());
ссылка: https://gist.github.com/gosub/c7576b0c99ffdd7e993c
person
RH.
schedule
05.02.2017
Вы можете добавить скрипт для применения xslt к xml в закладке в скобках «javascript ()».
Вот ссылка: http://www.w3schools.com/xsl/tryit.asp?filename=cdcatalog
Во-первых, разместите xslt и xml, чтобы избежать проблем с доступом к файлам из javascript.
Есть некоторые изменения, которые необходимы в скрипте:
В приведенной выше ссылке обновите следующее:
xml=loadXMLDoc("cdcatalog.xml"); xsl=loadXMLDoc("cdcatalog.xsl");
to
xml=loadXMLDoc(window.location.href.toString()); xsl=loadXMLDoc("http://<path>/<filename>.xsl");
Сохраните вывод в файле в соответствии с набором вывода в вашем
xslt(xml/html/text)
или просто отобразите его в предупреждении для копирования и использования.
Спасибо
person
Pallavi
schedule
11.12.2013