2010-11-04 59 views
2

我該如何編寫一個將給定的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

回答

1

下面是一個例子:

一種將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

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)中設置的輸出文件,或者直接在aler中顯示t用於複製和使用。

由於