以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XML基础 』  (http://bbs.xml.org.cn/list.asp?boardid=1)
----  [求助]xsl中变量的赋值,与传值  (http://bbs.xml.org.cn/dispbbs.asp?boardid=1&rootid=&id=80)


--  作者:changylong
--  发布时间:10/28/2003 10:17:00 AM

--  [求助]xsl中变量的赋值,与传值
<?xml version="1.0" encoding="UTF-8"?>

<?xml:stylesheet type="text/xsl" href="TestResult.xsl"?>
<Test>
  <TestDate>
    <TestFailureNum>1</TestFailureNum>
    <UserName>archie</UserName>
    <TestSuccessNum>7</TestSuccessNum>
    <SuccessTest>testPutColorAddGreen</SuccessTest>
    <ProjectName>HttpResponseTimeNodeProber</ProjectName>
    <FailureTest>testShouldAlarm</FailureTest>
    <SuccessTest>testGetAlarmDatetime</SuccessTest>
    <TestTotalNum>8</TestTotalNum>
    <SuccessTest>testPutColorAddRed</SuccessTest>
    <SuccessTest>testPutColoreSametime</SuccessTest>
    <SuccessTest>testGetAlarmValue</SuccessTest>
    <SuccessTest>testPutColorAndDel</SuccessTest>
    <SuccessTest>testPutColorAdd</SuccessTest>
2003_10_27  </TestDate>
</Test>

<?xml version="1.0" encoding="GB2312"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/TR/WD-xsl">

 <xsl:template name="/Test/TestDate"> 
<html>
<!--………………略-->
<body>
  HttpResponseTimeNodeProber
<table width="82%" border="1" cellspacing="0" cellpadding="0">
 <tr>
 <td>日期</td>
 <td>责任人</td>
 <td>单元测试个数</td>
 <td>测试失败个数</td>
 <td>测试成功个数</td></tr> 
<!--我想把TestFailureNum大于0的选项在table中显示成红色,而不是以下面这种方式,并且我想把它传到另一个页面,能否实现,谢谢-->
 <xsl:for-each select="Test/TestDate[ProjectName='HttpResponseTimeNodeProber'][TestFailureNum>'0']">
 <tr>
 <td><xsl:value-of select="TestDate"/></td>
 <td><font color="#666666"><xsl:value-of select="UserName"/></font></td>
 <td><xsl:value-of select="TestTotalNum"/></td>
 <td bgcolor="red"><xsl:value-of select="TestFailureNum"/></td>
 <td><xsl:value-of select="TestSuccessNum"/></td>
 </tr>
 </xsl:for-each> 
 <xsl:for-each select="Test/TestDate[FailureTest!=''][ProjectName='HttpResponseTimeNodeProber'][TestFailureNum>'0']">
 <table><tr><td><xsl:value-of select="FailureTest"/></td></tr></table>
 </xsl:for-each>
 </table>
 </body>
</html>
</xsl:template>
</xsl:stylesheet>
 
 <!--我想把TestFailureNum大于0的选项在table中显示成红色,而不是以下面这种方式,并且我想把它传到另一个页面,能否实现,谢谢-->


--  作者:admin
--  发布时间:10/28/2003 10:40:00 AM

--  
能否详细说一说你想怎么实现。
--  作者:changylong
--  发布时间:10/28/2003 10:52:00 AM

--  
这就一个单元测试集的结果页面,第一页面是对所以项目测试结果的显示,并在有错误的单元测试结果上有个连接,点击连接就可以看到,具体的错误信息;
          我现在做的,可以按照项目来划分测试结果集,但是我想把错误单元个数存入一个变量中,由他来判断是否显示报警颜色;
          另外,我想在有错误的结果上,能把当前日期和项目名称当作参数传到另一个页面;在另一页面接受这两个参数,再从xml中取出对应的结果集。
          主要问题就是,变量不能赋值,:)(不会,提示什么不能用于命名空间);变量的传递与接收。谢谢~
--  作者:admin
--  发布时间:10/28/2003 11:10:00 AM

--  
>>另外,我想在有错误的结果上,能把当前日期和项目名称当作参数传到另一个页面;在另一>>页面接受这两个参数,再从xml中取出对应的结果集。

这样的话用户就被重定向到“另一个页面”上去了。


--  作者:changylong
--  发布时间:10/28/2003 11:16:00 AM

--  
词不达意:)
主要就是,赋值和接受参数
--  作者:admin
--  发布时间:10/28/2003 1:57:00 PM

--  
HTML页面直接传递参数可以用GET方法:即 process.asp?param1=value1&param2=value2的方式
但XSLT不能接受参数,必须使用服务器端脚本(ASP,JSP等)来接受参数。。


[此贴子已经被作者于2003-10-28 13:59:13编辑过]

--  作者:changylong
--  发布时间:11/4/2003 2:28:00 PM

--  
Use Transformer.setParameter(name, value) method to pass it to your XSLT, then pick it up and handle it in your XSLT.

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