代码之家  ›  专栏  ›  技术社区  ›  Dr. Hans-Peter Störr

bookmarklet将XSLT样式表应用于显示的XML文件

  •  2
  • Dr. Hans-Peter Störr  · 技术社区  · 14 年前

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

    2 回复  |  直到 7 年前
        1
  •  1
  •   RH.    7 年前

    下面是一个例子:

    一个用于将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

        2
  •  0
  •   slavoo user3099232    10 年前

    您可以添加脚本以在“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) 或者只是在复制和使用时发出警报。

    谢谢