Как написать букмарклет, который применяет данную таблицу стилей XSLT к XML-файлу, отображаемому в, например, firefox? XML-документ уже загружен в браузере и отображается без таблицы стилей, а XSLT доступен по фиксированному URL-адресу, который должен быть закодирован в букмарклет.bookmarklet для применения таблицы стилей xslt к отображаемому XML-файлу
2
A
ответ
1
Вот пример:
Букмарклет для нанесения таблицы стилей XSLT к документу XML - просто вставить в формате base64 XSL в atob ("") - проверено на светлячок
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();
}());
0
Вы можете добавить скрипт для применения xslt в xml в закладке в скобках «javascript()».
Вот ссылка: http://www.w3schools.com/xsl/tryit.asp?filename=cdcatalog
Во-первых, включающие в себя и XSLT XML таким образом, чтобы избежать каких-либо проблем доступа к файлам с помощью JavaScript.
Есть некоторые изменения, которые необходимы в сценарии:
В ссылке выше, обновите следующее:
xml=loadXMLDoc("cdcatalog.xml"); xsl=loadXMLDoc("cdcatalog.xsl");
в
xml=loadXMLDoc(window.location.href.toString()); xsl=loadXMLDoc("http://<path>/<filename>.xsl");
Спасите выходной в файле в соответствии с выходом, установленным в вашем
xslt(xml/html/text)
, или просто отобразить его в aler t для копирования и использования.
Благодаря
ли XML сам документ, отображаемый в обозревателе окно? Или он уже преобразован таблицей стилей XSLT? Как/где таблица стилей «задана»? API-интерфейс Mozilla XSLT описан здесь: https://developer.mozilla.org/en/using_the_mozilla_javascript_interface_to_xsl_transformations –
Я уточнил вопрос. –