以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (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=5381)


--  作者:wind
--  发布时间:2/16/2004 7:54:00 PM

--  也是关于xml用xsl格式化的问题
0701.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="0702.xsl"?>
<books>
<book>
  <title>Cambridge</title>
  <author>David Crystal</author>
  <publisher>C Press</publisher>
</book>
<book>
  <title>Travels</title>
  <author>John</author>
  <publisher>P Press</publisher>
</book>
<book>
  <title>Punishment</title>
  <author>Fyodor</author>
  <publisher>Oxford Press</publisher>
</book>
</books>


0702.xsl
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/xsl/transform">

<xsl:template match="/">
  <html><body>
  <h2>My Books</h2>
  <table border="2">
  <xsl:apply-templates select="/books/book"/>
  </table>
  </body></html>
</xsl:template>

<xsl:template match="book">
  <tr>
  <xsl:apply-templates/>
  </tr>
</xsl:template>

<xsl:template match="title | author | publisher">
  <td>
  <xsl:value-of select='.'/>
  </td>
</xsl:template>

</xsl:stylesheet>


最后的结果:
My Books

请帮帮我,谢了。

[此贴子已经被作者于2004-2-16 19:55:04编辑过]

--  作者:teiki
--  发布时间:2/16/2004 10:31:00 PM

--  
我的修改案:

<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" version="4.0" encoding="GB2312" />

<xsl:template match="/">

<html>
<head>
<title>My Books</title>
</head>
<h1>My Books</h1>
<table border="1">
<tr>
<th>No.</th>
<th>Title</th>
<th>Author</th>
<th>Publisher</th>
</tr>
<xsl:apply-templates select="books" />
</table>
</html>
</xsl:template>

<xsl:template match="books">
<xsl:for-each select="book">
<tr>
 <td nowrap="nowrap">
 <xsl:number value="position()" format="i"/>
 </td>
 <td nowrap="nowrap">
 <xsl:value-of select="title" />
 </td>
 <td nowrap="nowrap">
 <xsl:value-of select="author" />
 </td>
 <td nowrap="nowrap">
 <xsl:value-of select="publisher" />
 </td>
</tr>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>


--  作者:wind
--  发布时间:2/17/2004 7:22:00 PM

--  
teiki 谢谢你的修改案。我根据你的程序,相应修改了我的0702.xsl,最终调试成功了。
也找到错误所在,
将第11行<xsl:template match="book">
       改为<xsl:template match="books">这时能显示出表格,但是3条记录是横着排的
所以在11行之后加<xsl:for-each select="book">
        在合适位置加</xsl:for-each>
执行后的结果与预期结果相符。
我又试着加了<xsl:output method="html" version="4.0" encoding="GB2312" />
此时发现,表格与文字的尺寸多变大了,这又是为什么呢?
请不吝赐教,谢谢。

--  作者:teiki
--  发布时间:2/18/2004 7:27:00 PM

--  
这可能是编码encoding的问题,我也不清楚,不知道哪位大侠可以帮助?

--  作者:wang_lei
--  发布时间:3/11/2004 3:30:00 PM

--  
有个 问题 我在访问 .xsl文件为什么IE把文件的内容显示出来了
--  作者:admin
--  发布时间:3/11/2004 5:19:00 PM

--  对阿。。正常情况就是这样。。
以下是引用wang_lei在2004-3-11 15:30:33的发言:
有个 问题 我在访问 .xsl文件为什么IE把文件的内容显示出来了


--  作者:suzena
--  发布时间:3/12/2004 4:06:00 PM

--  
是不是因为UTF-8是不等幅编码。中文要透过程序来转换,每个字要多加one or two个bytes来编码,所有胖了?
--  作者:grityaya
--  发布时间:3/17/2004 9:59:00 AM

--  
你们是否有试过http://www.w3.org/1999/xsl/transform就不能正常了,是错的,要改成http://www.w3.org/1999/XSL/Transform才行啊~~

我是菜鸟,说错了请指教阿


--  作者:grityaya
--  发布时间:3/17/2004 10:05:00 AM

--  
我真的试过了哦,楼主的代码就只要改了<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/xsl/transform">成<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">就可以了


--  作者:809
--  发布时间:3/21/2004 2:46:00 PM

--  
晕。。原来如此。。。
--  作者:hyandlsz
--  发布时间:4/19/2004 9:43:00 AM

--  
楼主的编码本来就是对的!XML里也区分大小写的!
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
203.125ms