将xslt样式表应用于显示的xml文件的bookmarklet

问题描述:

我该如何编写一个将给定的XSLT样式表应用于显示在例如firefox中的XML文件的书签? XML文档已经加载到浏览器中,并且没有样式表显示,并且XSLT在固定URL下可用,应该在小书签中进行编码。将xslt样式表应用于显示的xml文件的bookmarklet

+1

是自己在浏览器中呈现XML文档窗口?或者它已经被XSLT样式表转换了?样式表“给定”的方式/位置在哪里? Mozilla XSLT API记录在这里:https://developer.mozilla.org/en/using_the_mozilla_javascript_interface_to_xsl_transformations – 2010-11-04 12:47:02

+0

我澄清了这个问题。 – 2010-11-05 10:37:07

下面是一个例子:

一种将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(); 
}()); 

裁判:https://gist.github.com/gosub/c7576b0c99ffdd7e993c

您可以添加脚本以在'javascript()'括号内的书签中的xml上应用xslt。

下面是引用:http://www.w3schools.com/xsl/tryit.asp?filename=cdcatalog

首先,主机XSLT和XML,以避免从JavaScript文件的任何访问问题。

有一些修改,其都需要在脚本:上述

  1. 在参考更新以下:

    xml=loadXMLDoc("cdcatalog.xml"); 
        xsl=loadXMLDoc("cdcatalog.xsl"); 
    

    xml=loadXMLDoc(window.location.href.toString()); 
        xsl=loadXMLDoc("http://<path>/<filename>.xsl"); 
    
  2. 保存输出根据您在xslt(xml/html/text)中设置的输出文件,或者直接在aler中显示t用于复制和使用。

由于