2011-11-16 23 views
1

這是我的XML文檔:XSLT 2.0功能在Safari和Chrome中無法使用?

<?xml version="1.0"?> 
<?xml-stylesheet type='text/xml' href='/foo.xsl'?> 
<document/> 

這是/foo.xsl

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:foo="foo" 
    version="2.0" exclude-result-prefixes="xs"> 
    <xsl:function name="foo:const" as="xs:string"> 
    <xsl:text>ABC</xsl:text> 
    </xsl:function> 
    <xsl:template match="/"> 
    <xsl:value-of select="foo:const()"/> 
    </xsl:template> 
</xsl:stylesheet> 

正常工作與撒克遜8.7和產生ABC,作爲輸出。但在Safari和Chrome中,此文檔不起作用(只是一個沒有錯誤信息的空白頁面)。這是關於什麼? Safari和Chrome不支持XSL功能?

+0

你有沒有機會訪問本地文件系統? – FailedDev

+0

如果我刪除'',一切正常,所以它不是關於您指的可能的文件系統問題 – yegor256

+0

@ yegor256:沒有主要的瀏覽器使用XSLT 2.0處理器。但是你可以使用SaxonCE。 –

回答

4

不幸的是,沒有一款瀏覽器本身支持XSLT 2.0。我認爲他們都在等待其他人先行。

+0

不幸的是,你是對的。 – yegor256

1

您是否嘗試過使用SaxonCE

這是用Javascript實現的Saxon 9.x--據報道可以與五種主流瀏覽器中的任何一種一起使用。

在最後的Balisage會議上,邁克爾凱(@Michael Kay)在他的iPhone上演示了這個工作。

+0

非常有趣的鏈接,謝謝。現在這是一個性能問題:誰會進行更快的轉型 - 服務器上的Saxon或瀏覽器中的SaxonCE .. – yegor256

+0

當然@Michael Kay是Saxon的開發人員,他可以最好地回答這樣的問題。我不確定是否有支持這兩種方式的令人信服的論據。 Javascript處理可能會稍微慢一些,但會發生在您的盒子上,因此網絡延遲+服務器過載將被消除。 –

+0

這兩種體系結構是如此不同以至於無法在單一指標上進行比較。從服務器卸載到客戶端的工作當然應該有助於服務器吞吐量,但是否延長了延遲時間取決於服務器的繁忙程度。 Saxon-CE的性能問題之一是首次下載到瀏覽器時的延遲(900Kb),特別是在連接速度較慢時;之後它被緩存並且非常快速。 –

相關問題