以文本方式查看主题

-  W3CHINA.ORG讨论区 - 语义网·描述逻辑·本体·RDF·OWL  (http://bbs.xml.org.cn/index.asp)
--  『 XSL/XSLT/XSL-FO/CSS 』  (http://bbs.xml.org.cn/list.asp?boardid=8)
----  利用xsl转换xml为表格形式输出的问题  (http://bbs.xml.org.cn/dispbbs.asp?boardid=8&rootid=&id=41056)


--  作者:面水看银河
--  发布时间:12/10/2006 7:14:00 PM

--  利用xsl转换xml为表格形式输出的问题
我的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"/>
<!-- XML文档在当前目录下 -->
<xsl:template match="/">
<html>
<head>
  <title></title>
</head>
<body>
<!-- //表格的样式设计 -->
<table align="center" border="1" cellpadding="5" cellspacing="2" borderColor="darkorange"
   style="font-size:9pt">

<!-- 表的第一行的设计 -->
    <tr>
      <td  rowspan="2" align="center">时间</td>
      
      <xsl:for-each select="//headerColumns/site">
      <td align="center" colspan="{count(descendant::*)}">
          <xsl:value-of select="@name"/>
      </td>
     </xsl:for-each>
    </tr>
<!-- 表的第二行的设计 -->    
    <tr>
    
    <xsl:for-each select="//headerColumns/site/item ">
    <td align="center">
    <xsl:value-of select="@name"/>
    </td>
    
    </xsl:for-each>
    </tr>
<!-- 表的剩余行数的填充 -->
   <xsl:for-each select="//dataEntries/datetime">
     <tr>
      <td align="center" >
        <xsl:value-of select="@startDatetime"/>
      </td>
      <xsl:for-each select="//dataEntries/datetime/data">
      <td><font color="@alarmedColor"><xsl:value-of select="@value"/></font>
      </td>
     </xsl:for-each>
   </tr>
   </xsl:for-each>   
</table>
  </body>
</html>
</xsl:template>
</xsl:stylesheet>
对应的xml
<?xml version="1.0" encoding="GB2312"?>
<?xml-stylesheet type="text/xsl" href="wwc.xsl"?>
<report>
  <headerColumns>
    <site id="0001" name="聚酯南排">
      <item id="001" name="COD" columnId="site_0001_item_001"/>
      <item id="002" name="PH值" columnId="site_0001_item_002"/>
      <item id="003" name="流量" columnId="site_0001_item_003"/>
    </site>
    <site id="0002" name="研究院东">
      <item id="001" name="COD" columnId="site_0002_item_001"/>
      <item id="003" name="流量" columnId="site_0002_item_003"/>
      <item id="004" name="风速" columnId="site_0002_item_004"/>
    </site>
  </headerColumns>
  <dataEntries>
    <datetime startDatetime="2004年08月11日 18:00:00" endDatetime="2004年08月11日 18:59:59">
      <data columnId="site_0001_item_001" value="144.451" isAlarmed="true" alarmedColor="0xaabb87"/>
      <data columnId="site_0001_item_002" value="-2.506" isAlarmed="true" alarmedColor="0xff00bb"/>
      <data columnId="site_0001_item_003" value="13.132" isAlarmed="true" alarmedColor="0x7Fcbcb"/>
      <data columnId="site_0002_item_001" value="-0.671" isAlarmed="false" alarmedColor="0xaabb87"/>
      <data columnId="site_0002_item_003" value="210.375" isAlarmed="false" alarmedColor="0x7Fcbcb"/>
      <data columnId="site_0002_item_004" value="--"/>
    </datetime>
    <datetime startDatetime="2004年08月11日 19:00:00" endDatetime="2004年08月11日 19:59:59">
      <data columnId="site_0001_item_001" value="144.522" isAlarmed="true" alarmedColor="0xaabb87"/>
      <data columnId="site_0001_item_002" value="-2.507" isAlarmed="true" alarmedColor="0xff00bb"/>
      <data columnId="site_0001_item_003" value="13.135" isAlarmed="true" alarmedColor="0x7Fcbcb"/>
      <data columnId="site_0002_item_001" value="-0.671" isAlarmed="false" alarmedColor="0xaabb87"/>
      <data columnId="site_0002_item_003" value="195.105" isAlarmed="false" alarmedColor="0x7Fcbcb"/>
      <data columnId="site_0002_item_004" value="--"/>
    </datetime>
    <datetime startDatetime="2004年08月11日 20:00:00" endDatetime="2004年08月11日 20:59:59">
      <data columnId="site_0001_item_001" value="144.543" isAlarmed="true" alarmedColor="0xaabb87"/>
      <data columnId="site_0001_item_002" value="-2.507" isAlarmed="true" alarmedColor="0xff00bb"/>
      <data columnId="site_0001_item_003" value="13.132" isAlarmed="true" alarmedColor="0x7Fcbcb"/>
      <data columnId="site_0002_item_001" value="-0.671" isAlarmed="false" alarmedColor="0xaabb87"/>
      <data columnId="site_0002_item_003" value="190.711" isAlarmed="false" alarmedColor="0x7Fcbcb"/>
      <data columnId="site_0002_item_004" value="--"/>
    </datetime>
  </dataEntries>
</report>
哪位高人巨侠帮看看怎么才能让COD PH值 流量 COD 流量 风速 这些值能分别对应上第一行的那些数值啊。


--  作者:Qr
--  发布时间:12/10/2006 8:08:00 PM

--  
<!-- 表的剩余行数的填充 -->

   <xsl:for-each select="//dataEntries/datetime">
     <tr>
      <td align="center">
        <xsl:value-of select="@startDatetime"/>
      </td>
      <xsl:for-each select="data">
      <td><font color="@alarmedColor"><xsl:value-of select="@value"/></font></td>
      </xsl:for-each>
   </tr>
   </xsl:for-each>


--  作者:面水看银河
--  发布时间:12/11/2006 10:07:00 AM

--  
Qr真是太厉害了,非常的感谢,还有一个问题想请教
就是怎样才能让value值显示的颜色是它在xml文档里对应的alarmedColor的值
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
5,216.797ms