以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XSL/XSLT/XSL-FO/CSS 』  (http://bbs.xml.org.cn/list.asp?boardid=8)
----  xml转换为表格的xslt如何写呀?  (http://bbs.xml.org.cn/dispbbs.asp?boardid=8&rootid=&id=64927)


--  作者:upc2neiep
--  发布时间:7/24/2008 8:20:00 PM

--  xml转换为表格的xslt如何写呀?
xml文档结构如下:
<result>
<department v="学生A">
<ycsb v="模糊数学" o="0" f="0" t="0"/>
<ycsb v="组合数学" o="0" f="0" t="0"/>
<ycsb v="线性代数" o="0" f="0" t="0"/>
</department>
<department v="学生B">
<ycsb v="模糊数学" o="0" f="0" t="0"/>
<ycsb v="组合数学" o="0" f="0" t="0"/>
<ycsb v="线性代数" o="0" f="0" t="0"/>
</department>
</result>

如何通过xslt将xml文档转换为下面的形式
---------------------------------
      &brvbar;
      &brvbar;    ------------------------------
      &brvbar;    &brvbar;                       &brvbar;  o  &brvbar;  f    &brvbar;  t
学生A &brvbar;    &brvbar;  模糊数学  &brvbar;  0   0      0
      &brvbar;    &brvbar;    组合数学 &brvbar;  0      0      0
      &brvbar;    &brvbar;    线性代数 &brvbar;  0      0      0
      &brvbar;    ------------------------------
----------------------------------
      &brvbar;    
学生B &brvbar;  类似上面的嵌入式表格
      &brvbar;


或者这样的形式
-------------------------------------------------------------------
    &brvbar;            &brvbar;    模糊数学    &brvbar;  组合数学   &brvbar;      线性代数    &brvbar;
    &brvbar;              &brvbar; --------------------------------------------------------&brvbar;
    &brvbar;               &brvbar; o  &brvbar;   f   &brvbar;  t  &brvbar;  o  &brvbar;  f  &brvbar;   t  &brvbar;  o  &brvbar;   f   &brvbar;   t   &brvbar;
    &brvbar;------------------------------------------------------------------ &brvbar;
    &brvbar;  学生A  &brvbar;  0  &brvbar; 0  &brvbar;  0  &brvbar; 0  &brvbar;  0  &brvbar;  0  &brvbar;  0  &brvbar;  0   &brvbar;  0  &brvbar;
    &brvbar;------------------------------------------------------------- ----&brvbar;
    &brvbar;  学生B  &brvbar;  0  &brvbar; 0  &brvbar;  0  &brvbar; 0  &brvbar;  0  &brvbar;  0  &brvbar;  0  &brvbar;  0  &brvbar;  0  &brvbar;


--  作者:upc2neiep
--  发布时间:7/24/2008 8:22:00 PM

--  
有点乱码,可以看看http://topic.csdn.net/u/20080724/20/256b2ac1-e5b6-49d5-a51d-cd881d8bdf9d.html
--  作者:loupogames
--  发布时间:9/24/2008 10:26:00 AM

--  
我也是初学,参考了晚上的一些例子,自己添加了一点注释,希望对你有帮助。
my.xml
<?xml version="1.0" encoding="GB2312"?>
<?xml-stylesheet type="text/xsl" href="mystyle.xsl"?>
<Books>
 <Book ID="a001">
  <Name>网络指南</Name>
  <Photo>a.jpg</Photo>
  <Homepage>http://www.sina.com</Homepage>
  <color>red</color>
 </Book>
 <Book ID="a002">
  <Name>局域网技术</Name>
  <Photo>b.jpg</Photo>
  <Homepage>http://www.yahoo.com</Homepage>
  <color>green</color>
 </Book>
</Books>
mystyle.xsl(其中包含两种写法)
<?xml version="1.0" encoding="GB2312"?>
<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:template match="Books/Book">
  <table>
   <tr>
    <td>
     <!-- {Homepage}的意思是使用XML文件节点中Homepage元素的值作为超链接标签a的属性href的值。img同 -->
     <a href="{Homepage}">
      <img src="{Photo}" />
     </a>
    </td>
    <td bgcolor="{color}">
     <!-- {color}只可以应用到标签的属性中,如果是想输出它的值(也就是替换掉下面一行),是不可以这样使用的。 -->
     <xsl:value-of select="color"></xsl:value-of>
     <!-- 不能将上一行写成 {color},达不到你期望的效果。 -->
    </td>
   </tr>
  </table>
 </xsl:template>
</xsl:stylesheet>
<!--还可以写成如下代码,但是有点冗长-->
<?xml version="1.0" encoding="GB2312"?>
<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:template match="Books/Book">
  <!-- element元素的作用是添加一个name属性值的标签 -->
  <!-- 例如下面的语句是增加一个超链接标签a -->
  <xsl:element name="a">
   <!--  attribute的作用是配合element元素添加的标签增加此标签的相应属性。-->
   <!-- 例如下面的语句是增加超链接标签a的属性href的属性值。 -->
   <xsl:attribute name="href">
                <xsl:value-of select="./Homepage" />
            </xsl:attribute>
   <!-- 同上 -->
   <xsl:element name="img">
    <xsl:attribute name="src">
                    <xsl:value-of select="./Photo" />
                </xsl:attribute>
   </xsl:element>
  </xsl:element>
  <br />
 </xsl:template>
</xsl:stylesheet>

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