FireFox和IE以不同方式呈现XSLT文档

时间:2011-08-03 21:15:13

标签: xml internet-explorer firefox xslt

我不是XML“专家”,但我想到达那里。我最近试图编写我的第一个转换文档,我觉得它很顺利,这可以从我在IE中的漂亮结果中得到证明......

但是,当我尝试在其他浏览器中验证相似结果时,它们都崩溃了。我的猜测是我对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>

1 个答案:

答案 0 :(得分:1)

Firefox不会加载外部实体。有关详细信息,请参阅developer.mozilla.org/en/XML_in_Mozilla