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

时间:2010-11-04 11:16:44

标签: bookmarklet xslt

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

2 个答案:

答案 0 :(得分:1)

以下是一个例子:

用于将XSLT样式表应用于XML文档的小书签 - 只需在atob中插入base64编码的xsl("") - 在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

答案 1 :(得分:0)

您可以添加脚本以在'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)中设置的输出将输出保存在文件中,或者只是将其显示在警告中以便复制和使用。

  3. 由于