将 xslt 样式表应用到显示的 xml 文件的书签

发布于 2024-09-30 18:03:01 字数 123 浏览 2 评论 0原文

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

How would I write a bookmarklet that applies a given XSLT stylesheet to XML file that is displayed in, e.g., firefox? The XML Document is already loaded in the browser and displayed without a stylesheet, and the XSLT is available under a fixed URL which should be encoded in the bookmarklet.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

厌倦 2024-10-07 18:03:01

下面是一个示例:

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

Here is an example:

A bookmarklet for applying an XSLT stylesheet to an XML document - just insert the base64 encoded xsl in atob("") - tested on 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();
}());

ref: https://gist.github.com/gosub/c7576b0c99ffdd7e993c

南街九尾狐 2024-10-07 18:03:01

您可以在“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://<路径>/<文件名>.xsl");
    
  2. 输出保存在文件中 或只需将其显示在复制和使用的警报中。

谢谢

You can add the script to apply xslt on xml in the bookmark within parenthesis of 'javascript()'.

Here is the reference: http://www.w3schools.com/xsl/tryit.asp?filename=cdcatalog

Firstly, host the xslt and xml so as to avoid any access issues of files from javascript.

There are some modifications which are needed in the script:

  1. In the reference above, update the following:

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

    to

        xml=loadXMLDoc(window.location.href.toString());
        xsl=loadXMLDoc("http://<path>/<filename>.xsl");
    
  2. Save the output in a file as per the output set in your xslt(xml/html/text) or simply display it in alert for copying and using.

Thanks

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文