以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 XSL/XSLT/XSL-FO/CSS 』  (http://bbs.xml.org.cn/list.asp?boardid=8)
----  [求助]如何让xml通过xsl生成的网页用宋体显示?  (http://bbs.xml.org.cn/dispbbs.asp?boardid=8&rootid=&id=11310)


--  作者:qinxd
--  发布时间:10/26/2004 1:26:00 PM

--  [求助]如何让xml通过xsl生成的网页用宋体显示?
网页显示的内容字体不是宋体,我的字体指定有什么错误?
xml:
  <?xml version="1.0" encoding="gb2312"?>
  <?xml-stylesheet type="text/xsl" href="./XSL/a.xsl"?>

xsl:
<?xml version="1.0" encoding="gb2312"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" indent="yes" version="4.0"/>
<xsl:template match="/">
   <html>
   <head>
      <meta http-equiv="Content-Type" content="text/html; charset=gb2312"/>
       <link href="include/data.css" rel="stylesheet" type="text/css"/>
   </head>
   </html>
  </xsl:template>


--  作者:doubleG
--  发布时间:10/26/2004 1:30:00 PM

--  
字体不是在CSS里设定吗?XSL只能设定字符集,不能管字体的。除非自己<font/>呵呵
--  作者:qinxd
--  发布时间:10/26/2004 2:25:00 PM

--  
下面是我的两个文件和一个htm文件,运行后,为什么xml显示的数字字体和html显示的不一样?而且由运行xml生成的htm文件一样存在问题,可只要把生成的html文件的内容拷贝到一个新的html文体中并去掉<META http-equiv="Content-Type" content="text/html; charset=UTF-16">显示就正常了,但在生成的文件里即使去掉这行也没用。
文件:a.xml
<?xml version="1.0" encoding="gb2312"?>
<?xml-stylesheet type="text/xsl" href="a.xsl"?>
<a>
   2599,00.00
</a>

文件:a.xsl
<?xml version="1.0" encoding="gb2312"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
   <html>
   <head>
      <meta http-equiv="Content-Type" content="text/html; charset=gb2312"/>
   </head>
   <body onload="document.execCommand('Saveas','','MyXML.html')">
     <xsl:value-of select = "a"/>
   </body>
   </html>
  </xsl:template>
  </xsl:stylesheet>
文件a.htm
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body>
   2599,00.00
</body>
</html>


--  作者:doubleG
--  发布时间:10/26/2004 4:21:00 PM

--  
因为在xsl中如果不设定<xsl:output..的话默认输出的html和xml都是utf-16的,那么在你的xml+xsl中没有设定<xsl:output...所以就有<......charset=UTF-16">。但是你的html文件中的encoding="gb2312",这是属于不同的字符集的。如果要消除这个问题,在你的xsl中<xsl:stylesheet...后加上<xsl:output method="html" encoding="GB2312"/>就可以了。
--  作者:qinxd
--  发布时间:10/26/2004 5:16:00 PM

--  
问题已解决,非常非常感谢!
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
62.500ms