将xslt样式表应用于显示的xml文件的bookmarklet
问题描述:
我该如何编写一个将给定的XSLT样式表应用于显示在例如firefox中的XML文件的书签? XML文档已经加载到浏览器中,并且没有样式表显示,并且XSLT在固定URL下可用,应该在小书签中进行编码。将xslt样式表应用于显示的xml文件的bookmarklet
答
下面是一个例子:
一种将XSLT样式表将XML文档书签 - 只需插入base64编码的xsl在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();
}());
答
您可以添加脚本以在'javascript()'括号内的书签中的xml上应用xslt。
下面是引用: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样式表转换了?样式表“给定”的方式/位置在哪里? Mozilla XSLT API记录在这里:https://developer.mozilla.org/en/using_the_mozilla_javascript_interface_to_xsl_transformations – 2010-11-04 12:47:02
我澄清了这个问题。 – 2010-11-05 10:37:07