2011-08-03 65 views
0

我不是一個XML「專家」,但我試圖去那裏。我最近試圖編寫我的第一個轉換文檔,我認爲這樣做很好,就像我在IE中的美麗結果所證明的那樣...FireFox和IE以不同的方式渲染XSLT文檔

當我嘗試在其他瀏覽器中驗證結果時,它全部崩潰。我的猜測是,我對XSLT標準進行了不正確的編碼,IE瀏覽器猜測了我的意圖並將其顯示出來。

顯然我不知道問題是什麼,但我有一些猜測。我敢打賭,它與我聲明的DOCTYPE ENTITY有關,可能不推薦使用,但IE仍然呈現它。基於我認爲可能會成爲問題的原因,我會將相關問題所在的文件文本包括在內,但如果有人需要更多信息,我很樂意提供更多詳細信息。

爲了空間的緣故,我沒有包含整個xslt,我也是99.9%確定問題不在於xslt,而是與其他3個文件中的一個完全包含在一起。

我衷心感謝任何援助提前。

index.html

<?xml version="1.0" encoding="iso-8859-1"?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <meta http-equiv="refresh" content="0;url=conf/contentNavMenu.xml"> 
    <title>SmartBook</title> 
</head> 
<body> 
</body> 
</html> 

contentNavMenu.xml

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

<!DOCTYPE smartbook [ 
    <!ENTITY navigationMenu SYSTEM "smartbookLinks.xml"> 
]> 

<smartbook> 
    <navMethod>JS</navMethod> 
    &navigationMenu; 
</smartbook> 

smartbookLinks.xml

<?xml version="1.0" encoding="utf-8"?> 
<menu> 
    <menuItem> 
    <id>1</id> 
    <text>Problem Identification</text> 
    <subMenu> 
     <navalturl>navalt/1.html</navalturl> 
     <menuItem> 
     <id>1.1</id> 
     <text>Identify a real world need.</text> 
     <url></url> 
     <target>_blank</target> 
     <details>Details 1.1</details> 
     </menuItem> 
     <menuItem> 
     <id>1.2</id> 
     <text>Identify specific area of the identified need.</text> 
     <url></url> 
     <target>_blank</target> 
     <details>Details 1.2</details> 
     </menuItem> 
    </subMenu> 
    </menuItem> 
    <menuItem> 
    <id>2</id> 
    <text>Risk Identification and Mitigation</text> 
    <subMenu> 
     <navalturl>navalt/2.html</navalturl> 
     <menuItem> 
     <id>2.1</id> 
     <text>Text 2.1</text> 
     <url></url> 
     <target>_blank</target> 
     <details>Details 2.1</details> 
     </menuItem> 
    </subMenu> 
    </menuItem> 
</menu> 

smartbook.xsl

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

<xsl:template match="/"> 

<html> 

<head> 
    <link href="../css/smartbook.css" rel="stylesheet" type="text/css" /> 
    <script type="text/javascript" src="../js/sb_navigation.js"></script> 
</head> 

<body style="margin-top:4px;"> 

    ...content omitted... 

</body> 
</html> 
</xsl:template> 

</xsl:stylesheet> 
+0

考慮到問題很可能出現在標有「...內容被忽略的部分......」的部分。另外,除了「它分崩離析」之外,您還沒有給出關於它如何失敗的提示。 –

回答

1

Firefox不加載外部實體。詳情請參閱developer.mozilla.org/en/XML_in_Mozilla

+0

好的,謝謝DevNull的資源。我已閱讀過很多次,雖然它聲明外部實體無法加載,但它不提供任何建議來減輕這種情況。你碰巧對如何修復代碼有任何建議嗎? 再次感謝! –