我不是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>