2011-11-22 56 views
0

我不得不使用XSLT呈現一些XML。問題是,它在IE中呈現(我在我的辦公室機器上測試過IE6),而不是在其他瀏覽器中。其他瀏覽器使用XSL顯示文檔內容(與沒有XSL的文檔結構相反)。在IE中使用XML + XSLT呈現,但在其他瀏覽器中無法呈現

這裏是我的XML文件頭:

<?xml version="1.0" encoding="utf-8"?> 
<?xml-stylesheet type="text/xsl" href="demo.xsl"?> 
<XMLCodeFollows> 
. 
. 
. 
</XMLCodeFollows> 

這裏是XSL文件頭:

<?xml version="1.0" encoding="utf-8"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 

任何人知道是什麼問題?

編輯:刪除了xsl中可能使IE指定的額外僞造行,但它仍然不起作用。 IE仍然呈現XML/XSL,但沒有其他瀏覽器。

+0

P.S. :我對XML/XSL有點新... – c0da

+0

請提供一個完整(儘可能小)的XML和XSLT示例,以便人們可以重現這個問題。這是你沒有向我們顯示的代碼中的東西。 –

回答

2

我不確定你的描述究竟是什麼問題 - XML文檔是否在IE中被你的XSLT文件取樣,而不是在其他瀏覽器中(即:Firefox等只是顯示純XML?)。很難說沒有看到整個XSLT,但是我發現的一點是,你的xsl文件首先聲明特定於Microsoft的XSL命名空間msxsl,這表明你的樣式表可能使用Firefox或Chrome不支持的XSLT擴展。

+0

編輯該問題。 – c0da

+0

是的,XML文檔通過IE中的XSLT文件獲取樣式,但不會在其他瀏覽器中獲取樣式。 – c0da

+0

@ c0da,正如Dimitre所說,您的XSLT中一定會有其他事情發生。我使用XML進行了測試,並在其中添加了一個' Boo'元素,並在XSLT標頭下添加了一個模板,以匹配'// boo',並且無處不在。所以你的模板必須做其他瀏覽器不理解的東西。 (例如,它是否使用document()函數?我知道Firefox爲了安全原因限制了它的使用) –