我用XML+XSL,XSL调用Javascript输出,会出现乱码
index.xml
- XML code
<?xml version="1.0" encoding="GB2312"?> <?xml:stylesheet type="text/xsl" href="index.xsl"?> <单位> <名称>单位的名称</名称> <Logo>img/Logo.jpg</Logo> <英文名>MC</英文名> <目录> <分类> <ID>00001</ID> <标题>百度</标题> <链接>http://www.baidu.com</链接> <打开方式>_blank</打开方式> </分类> <分类> <ID>00002</ID> <标题>谷歌</标题> <链接>http://www.google.cn</链接> <打开方式>_blank</打开方式> </分类> <分类> <ID>00003</ID> <标题>腾讯</标题> <链接>http://www.qq.com</链接> <打开方式>_blank</打开方式> </分类> <分类> <ID>00004</ID> <标题>网易</标题> <链接>http://www.163.com</链接> <打开方式>_blank</打开方式> </分类> </目录> </单位>
index.xsl
XSL代码:
<?xml version="1.0" encoding="GB2312"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="text()">
<xsl:value-of/>
</xsl:template>
<xsl:template match="/">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html" charset="GB2312"/>
<title><xsl:value-of select="单位/名称"/> - <xsl:value-of select="单位/英文名"/></title>
<link rel="Stylesheet" href="index.css" type="text/css"/>
<script language="javascript" src="js/timer.js"></script>
</head>
<body onload="show5()">
<div id="Logo">
<img id="imgLogo">
<xsl:attribute name="src">
<xsl:value-of select="单位/Logo"/>
</xsl:attribute>
<xsl:attribute name="title"><xsl:value-of select="单位/名称"/></xsl:attribute>
</img>
</div>
<div id="liveclock"></div>
<div id="ML">
<xsl:apply-templates select="单位/目录"/>
</div>
</body>
</html>
</xsl:template>
<xsl:template match="目录">
<xsl:for-each select="分类">
<a>
<xsl:attribute name="href">
<xsl:value-of select="链接"/>
</xsl:attribute>
<xsl:attribute name="target">
<xsl:value-of select="打开方式"/>
</xsl:attribute>
<xsl:attribute name="title">
<xsl:value-of select="标题"/>
</xsl:attribute>
<xsl:value-of select="标题"/></a>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
timer.js
- JScript code
function show5(){
if (!document.layers&&!document.all) return;
var digital=new Date();
var hours=digital.getHours();
var minutes=digital.getMinutes();
var seconds=digital.getSeconds();
if (hours <=9) hours="0"+hours;
if (minutes <=9) minutes="0"+minutes;
if (seconds <=9) seconds="0"+seconds;