xsl样式解析时全局变量的用法
来源:互联网 发布:王力宏唱功知乎 编辑:程序博客网 时间:2024/06/10 17:01
1.首先记住 variable这个变量在xsl中只得赋值一次,以后不得再改变了..呵呵.这样怎么称得变量了,不知道draft的专家们是吃什么饭的.
2.所谓全局,因为xsl:variable元素是xsl:stylesheet的子无素,所以在stylesheet 中定义的变量可以在整个实例空间中引用.
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:param name="viewtype" select="'view'"/>
<xsl:variable name="URLVariable">
<xsl:choose>
<xsl:when test="contains($viewtype,'edit')">
<xsl:text>/flowEngine/page1.wml</xsl:text>
</xsl:when>
<xsl:when test="contains($viewtype,'view')">
<xsl:text>/flowEngine/page2.wml</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>/flowEngine/error.wml</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:template match="/data">
<xsl:value-of select ="$URLVariable"/>
<a href="{$URLVariable}" > myURL</a>
...........在实例空间中都有效
</xsl:template>
</xsl:stylesheet >
3.引用方法
1.$vairableName的方法
对于<xsl:value-of select ="$vairableName"/>之类以node对象为值的元素,请使用之.
但<xsl:text>$hyperURLVariable</xsl:text>是无效的.
2.{$vairableName}的方法
对于一些以非node对象为值的引用,请使用{$vairableName},两边的大括号不能少.
如 <a href="{$hyperURLVariable}" > myURL</a>
但<xsl:text>{$hyperURLVariable}</xsl:text>也是无效的.
4.全局变量的错误使用方法
定义的全局变量
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:param name="viewtype" select="'view'"/>
<xsl:variable name="URLVariable"/> <!---在这里定义一个空值-->
<xsl:template match="/data">
<xsl:choose>
<xsl:variable name="URLVariable">
<xsl:when test="contains($viewtype,'edit')">
<xsl:text>/flowEngine/page1.wml</xsl:text>
</xsl:when>
</xsl:variable>
<xsl:variable name="URLVariable">
<xsl:when test="contains($viewtype,'view')">
<xsl:text>/flowEngine/page2.wml</xsl:text>
</xsl:when>
</xsl:variable>
<xsl:variable name="URLVariable">
<xsl:otherwise>
<xsl:text>/flowEngine/error.wml</xsl:text>
</xsl:otherwise>
</xsl:variable>
<!---一般人会认为这是全局变量赋值,错了,其实是在一个更小的代码空间了重新定义一个局部变量)
</xsl:choose>
<xsl:value-of select ="$URLVariable"/> <
<a href="{$URLVariable}" > myURL</a>
<!----上面的全局变量的值仍是空的,你根本不然引用到xsl:choose中的URLVariable的值,这个错误
,浪费我三个小时去获得它---->
...........全局变量在整个实例空间中都有效,只是我们没有正确赋值.
</xsl:template>
</xsl:stylesheet >
希望看了这些,对你有些帮助!
附上一个例子:
XML:
xmlStr=xmlStr.replace("<root","<?xml-stylesheet type=\"text/xsl\" href=\"/portal/dataExchange/xsl/"+type+".xsl\"?>\n<root id=\""+id+"\" valid=\""+String.valueOf(valid)+"\"");
<?xml version="1.0"?><root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:xsd="http://www.w3.org/2001/XMLSchema" date="2014-05-14" type="greataSend"><Datas><BasicData><drSwtype>0</drSwtype><drSwid>11-11-18</drSwid><drSwdate>2014-05-14</drSwdate><drSwunit id="10094">十一号线南段项目公司</drSwunit><drFiledate>2011-11-18</drFiledate><drSecretClass>普通</drSecretClass><drNum>1</drNum><drTitle>永久接水工程施工单位方式的请示</drTitle><drBlMode>网上流转</drBlMode><modelId>收文流程</modelId><removed>0</removed><operatetime>2014-05-14</operatetime><chiefDep>12040401</chiefDep><ordinartyDep>信息管理中心</ordinartyDep><chiefPerson>120404</chiefPerson><ordinartyPerson>上海申通地铁集团有限公司</ordinartyPerson><remark>主送:申通集团内容:永久接水工程施工单位方式的请示(后附附件)</remark><flag>0</flag><priorities>普件</priorities></BasicData><AttachFileList><AttachFile><removed>0</removed><id>0</id><fileExtName>doc</fileExtName><fileSize>0</fileSize><version>1</version><fileName>永久接水工程施工单位方式的请示</fileName><path>http://greataweb.shmtr.com/files/16/29648/A/永久接水工程施工单位方式的请示.doc</path></AttachFile></AttachFileList></Datas></root>
xsl
<?xml version="1.0" encoding="utf-8"?> <!-- Edited with XML Spy v2007 (http://www.altova.com) --><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method='html' version='1.0' encoding='UTF-8' indent='yes' /> <xsl:template match="/"> <xsl:variable name="recValid" select="root/@valid"/> <html lang="en"><head> <meta http-equiv="X-UA-Compatible" content="IE=edge" charset="utf-8" /><title>上海申通地铁集团有限公司收文处理单</title><link rel="stylesheet" href="css/formalize.css" /><link rel="stylesheet" href="css/page.css" /><link rel="stylesheet" href="css/default/imgs.css" /><link rel="stylesheet" href="css/reset.css" /> <link type="text/css" href="css/flick/jquery-ui-1.8.18.custom.css" rel="stylesheet" /> <!--[if IE 6.0]> <script src="js/iepng.js" type="text/javascript"></script> <script type="text/javascript"> EvPNG.fix('div, ul, ol, img, li, input, span, a, h1, h2, h3, h4, h5, h6, p, dl, dt'); </script> <![endif]--><script src="/portal/js/html5.js"></script><script src="/portal/js/jquery-1.7.1.js"></script><script src="/portal/js/jquery-ui-1.8.18.custom.min.js"></script><script src="/portal/js/jquery.formalize.js"></script> <script type="text/javascript" src="js/common.js"></script> </head><body class="Flow"><div class="f_bg_fw"> <div class="w850"> <div class="logo_2"></div> </div> <div class="gray_bg"> <!--Panel_6--> <div class="Divab1"> <!--1st--> <div class="panel_6"> <div class="divT"> <div class="mb10 icon icon_1"></div> <div class="more_4"><a href="#" title="更多">更多</a></div> </div> <div class="divH"> <div class="divB"> <h5 class="clearfix">业务办理</h5> <div class="con"> <ul class="button clearfix"> <xsl:if test="root[@valid='1']"> <li id="ywbl"><a href="javascript:ywbl('{$recValid}');" class="ywbl">业务办理</a></li> </xsl:if> <li><a href="#" target="blank" class="print">打印</a></li> <li><a href="#" class="jk">业务监控</a></li> <li><a href="#" class="tips">小提示</a></li> <li><a href="#" class="imp">公文导入</a></li> <li><a href="#" class="exp">公文导出</a></li> </ul> </div> </div> <div class="divF"></div> </div> </div> <!--1st End--> </div> <!--Divab1 End--> <form action="http://10.1.44.18/docRe/registerRe.action" id="formAdd" name="formAdd" method="post" target="theOldUrl"> <input type="hidden" name="typeId"><xsl:attribute name="value"><xsl:value-of select="root/Datas/BasicData/ChiefPerson"/></xsl:attribute></input> <input type="hidden" name="header"><xsl:attribute name="value"><xsl:value-of select="root/Datas/BasicData/ordinartyPerson"/></xsl:attribute></input> <input type="hidden" name="drSwtype"><xsl:attribute name="value"><xsl:value-of select="root/Datas/BasicData/chiefDep"/></xsl:attribute></input> <input type="hidden" name="attachFj" value=""/> <div class="gray_bg2"> <div class="w_bg"> <div> <div class="Top_fw"> <h1 class="t_c">上海申通地铁集团有限公司<br></br>收文单</h1> <div class="mb10 Step clearfix"> <ul class="clearfix"> <li class="fst on"> <dl> <dt></dt> <dd>登记阶段</dd> </dl> </li> <li > <dl> <dt></dt> <dd>拟办阶段</dd> </dl> </li> <li> <dl> <dt></dt> <dd>批办阶段</dd> </dl> </li> <li> <dl> <dt></dt> <dd>跟踪阶段</dd> </dl> </li> <li class="fin"> <dl> <dt></dt> <dd>办结阶段</dd> </dl> </li> </ul> </div> <div class="mb10"> <table width="100%" border="0" cellspacing="0" cellpadding="0" class="table_4"> <thead> <th colspan="4"> <h5 class="fl">收文编号:</h5><span class="fl"><xsl:value-of select="root/Datas/BasicData/drSwid"/></span> <span class="fr clearfix"> <h6 class="fl">密级:</h6><span class="fl mr8"> <xsl:value-of select="root/Datas/BasicData/drSecretClass"/></span> <h6 class="fl">缓急:</h6><span class="fl mr8"> <xsl:value-of select="root/Datas/BasicData/priorities"/></span> </span> </th> </thead> <tr> <td class="lableTd" width="15%">来文单位</td> <td width="35%"><input name="drSwunit" type="text" size="42"><xsl:attribute name="value"><xsl:value-of select="root/Datas/BasicData/drSwunit"/></xsl:attribute></input></td> <td class="lableTd" width="15%">文件日期</td> <td ><input name="drFiledate" type="text" size="42"><xsl:attribute name="value"><xsl:value-of select="root/Datas/BasicData/drFiledate"/></xsl:attribute></input></td> </tr> <tr> <td class="lableTd" width="15%">份数</td> <td ><input name="drNum" type="text" size="42"><xsl:attribute name="value"><xsl:value-of select="root/Datas/BasicData/drNum"/></xsl:attribute></input></td> <td class="lableTd" width="15%">文件字号</td> <td > <input name="drFilezh" type="text" size="42"><xsl:attribute name="value"><xsl:value-of select="root/Datas/BasicData/drFilezh"/></xsl:attribute></input> </td> </tr> <tr> <td class="lableTd" width="15%">文件标题</td> <td colspan='3'><textarea name="drTitle"><xsl:value-of select="root/Datas/BasicData/drTitle"/></textarea></td> </tr> <tr> <td class="lableTd" width="15%">文件内容</td> <td colspan='3'> <table width="100%" cellpadding="2" cellspacing="0" style="font-size:12px;border-top:#bbb 1px solid;border-right:#bbb 1px solid"> <xsl:if test="root/Datas/AttachFileList/AttachFile/fileName "> <!-- 附件属性名--> <tr> <td align='center' nowrap="nowrap" width='40%'> <font><b>文件名</b> </font> </td> <td align='center' nowrap="nowrap" width='5%'> <font><b>大小</b> </font> </td> <td align='center' nowrap="nowrap" width='20%'> <font><b>上传时间</b> </font> </td> <td align='center' nowrap="nowrap" width='5%'> <font><b>上传人</b> </font> </td> <td align='center' nowrap="nowrap" width='10%'> <font><b>版本</b> </font> </td> <td align='center' nowrap="nowrap" width='15%'> <font><b>备注</b> </font> </td> </tr> <xsl:for-each select="root/Datas/AttachFileList/AttachFile"> <tr> <td style="line-height: 15px"> <xsl:variable name="AttachFilePath" select="path" /> <input type="hidden" name="filePath" value="{$AttachFilePath}"/> <input type="hidden" name="fileName"><xsl:attribute name="value"><xsl:value-of select="fileName"/></xsl:attribute></input> <input type="hidden" name="fileExtName" ><xsl:attribute name="value"><xsl:value-of select="fileExtName"/></xsl:attribute></input> <input type="hidden" name="fileSize"><xsl:attribute name="value"><xsl:value-of select="fileSize"/></xsl:attribute></input> <input type="hidden" name="version" ><xsl:attribute name="value"><xsl:value-of select="version"/></xsl:attribute></input> <input type="hidden" name="memo" ><xsl:attribute name="value"><xsl:value-of select="memo"/></xsl:attribute></input> <!--img src="/workflowNew/images/files/doc.gif" style="display: inline;" /--> <a href="{$AttachFilePath}" target="_blank" style="display: inline;"> <xsl:value-of select="fileName"/> . <xsl:value-of select="fileExtName"/></a> </td> <td style="line-height: 15px;"> <xsl:value-of select="fileSize"/> K</td> <td style="line-height: 15px"><xsl:value-of select="uploadDate"/> </td> <td style="line-height: 15px"><xsl:value-of select="uploader"/> </td> <td style="line-height: 15px"> v<xsl:value-of select="version"/></td> <td style="word-break: break-all"> <xsl:value-of select="memo"/> </td> </tr> </xsl:for-each> </xsl:if> </table> </td> </tr> <!-- </table> <table width="100%" border="0" cellspacing="0" cellpadding="0" class="table_4"> --> <tr> <td class="lableTd" width="15%">备注</td> <td colspan="3"> <textarea name="remark"><xsl:value-of select="root/Datas/BasicData/remark"/></textarea> </td> </tr> <tr> <th colspan="4"><h5 class="fl">收文意见栏</h5></th> </tr> <!-- 拟办意见 --> <tr> <td colspan="4"> <div class="node"> <b class="fl">拟办意见</b> <div class="clear"></div> <xsl:for-each select="root/Datas/TApprovedinfoList/TApprovedinfo[stepname='拟办人']"> <xsl:sort select="upddate" order="descending"/> <div class="con"> <i><xsl:value-of select="dept"/></i> <p><xsl:value-of select="remark"/></p> <div class="p8 clearfix"> <div class="fr mr5"><xsl:value-of select="upddateStr"/>-07-15</div> <div class="fr mr5"><xsl:value-of select="userfullname"/></div> <!--<div class="fr mr5">运管中心</div>--> </div> </div> </xsl:for-each> </div> <!-- node end --> <div class="node"> <b class="fl">领导批示</b> <div class="clear"></div> <xsl:for-each select="root/Datas/TApprovedinfoList/TApprovedinfo[stepname='领导' or stepname='批示领导']"> <xsl:sort select="upddate" order="descending"/> <div class="con"> <i><xsl:value-of select="dept"/></i> <p><xsl:value-of select="remark"/></p> <div class="p8 clearfix"> <div class="fr mr5"><xsl:value-of select="upddateStr"/>-07-15</div> <div class="fr mr5"><xsl:value-of select="userfullname"/></div> <!--<div class="fr mr5">运管中心</div>--> </div> </div> </xsl:for-each> </div> <div class="node"> <b class="fl">部门意见</b> <div class="clear"></div> <xsl:for-each select="root/Datas/TApprovedinfoList/TApprovedinfo[stepname='部门业务人员处理' or stepname='部门领导审核' or stepname='部门接受人工作分发']"> <xsl:sort select="upddate" order="descending"/> <div class="con"> <i><xsl:value-of select="dept"/></i> <p><xsl:value-of select="remark"/></p> <div class="p8 clearfix"> <div class="fr mr5"><xsl:value-of select="upddateStr"/>-07-15</div> <div class="fr mr5"><xsl:value-of select="userfullname"/></div> <!--<div class="fr mr5">运管中心</div>--> </div> </div> </xsl:for-each> </div> <div class="node"> <b class="fl">办结人意见</b> <div class="clear"></div> <xsl:for-each select="root/Datas/TApprovedinfoList/TApprovedinfo[stepname='办结']"> <xsl:sort select="upddate" order="descending"/> <div class="con"> <i><xsl:value-of select="dept"/></i> <p><xsl:value-of select="remark"/></p> <div class="p8 clearfix"> <div class="fr mr5"><xsl:value-of select="upddateStr"/>-07-15</div> <div class="fr mr5"><xsl:value-of select="userfullname"/></div> <!--<div class="fr mr5">运管中心</div>--> </div> </div> </xsl:for-each> </div> <div class="node"> <b class="fl">备案情况</b> <div class="clear"></div> <xsl:for-each select="root/Datas/TApprovedinfoList/TApprovedinfo[stepname='备案']"> <xsl:sort select="upddate" order="descending"/> <div class="con"> <i><xsl:value-of select="dept"/></i> <p><xsl:value-of select="remark"/></p> <div class="p8 clearfix"> <div class="fr mr5"><xsl:value-of select="upddateStr"/>-07-15</div> <div class="fr mr5"><xsl:value-of select="userfullname"/></div> <!--<div class="fr mr5">运管中心</div>--> </div> </div> </xsl:for-each> </div> <div class="node"> <b class="fl">办理结果</b> <div class="clear"></div> <xsl:for-each select="root/Datas/TApprovedinfoList/TApprovedinfo[stepname='办结']"> <xsl:sort select="upddate" order="descending"/> <div class="con"> <i><xsl:value-of select="dept"/></i> <p><xsl:value-of select="remark"/></p> <div class="p8 clearfix"> <div class="fr mr5"><xsl:value-of select="upddateStr"/>-07-15</div> <div class="fr mr5"><xsl:value-of select="userfullname"/></div> <!--<div class="fr mr5">运管中心</div>--> </div> </div> </xsl:for-each> </div> </td> </tr> <!-- 拟办end --> <!-- <tr> <td class="lableTd" width="15%">拟办意见</td> <xsl:for-each select=""> <td colspan="3"><xsl:value-of select="root/Datas/BasicData/sendReportW"/></td> </xsl:for-each> </tr> --> <!-- <tr> <td class="lableTd" width="15%" >领导批示</td> <td colspan="3"><xsl:value-of select="root/Datas/BasicData/sendReportW"/></td> </tr> <tr> <td class="lableTd" width="15%" >部门意见</td> <td colspan="3"><xsl:value-of select="root/Datas/BasicData/sendReportW"/></td> </tr> </table> <table width="100%" border="0" cellspacing="0" cellpadding="0" class="table_4"> <tr> <td class="lableTd" width="15%">办结人意见</td> <td ><xsl:value-of select="root/Datas/TApprovedinfoList/TApprovedinfo[stepname='办结']/remark"/></td> </tr> <tr> <td class="lableTd" width="15%">备案情况</td> <td ><xsl:value-of select="root/Datas/TApprovedinfoList/TApprovedinfo[stepname='备案']/remark"/></td> </tr> --> <!-- <tr> <i class="i-red"><xsl:value-of select="dept"/></i> <div class="p8"><xsl:value-of select="remark"/></div> <div class="p8 clearfix"> <div class="fr mr5"><xsl:value-of select="upddateStr"/></div> <div class="fr mr5"> <xsl:value-of select="userfullname"/> </div> </div> </div> </xsl:for-each> </td> </tr> --> </table> </div> <div class="mb10 t_c"> <!-- input type="submit" value="初审通过" /> <input type="button" value="返 回" /> <input type="reset" value="取 消" / --> </div> <div class="footer"></div> </div> </div> </div> </div> </form> <form action="confirmValid.action" id="recUpdate" name="recUpdate" method="post" target="theUpdateUrl"> <input type="hidden" name="id"><xsl:attribute name="value"><xsl:value-of select="root/@id"/></xsl:attribute></input> </form> <iframe name="theOldUrl" style="display: none;"></iframe> <iframe name="theUpdateUrl" style="display: none;"></iframe> </div> </div></body></html> <!--html结束 --></xsl:template></xsl:stylesheet>
- xsl样式解析时全局变量的用法
- xsl样式解析时全局变量的用法
- xsl样式解析时全局变量的用法
- XSL的解析过程
- XSL样式
- xsl:template match的用法
- XSL对XML的样式化显示
- 规范xml文件的xsl样式
- xsl:template 和 xsl:apply-templates 的用法
- 全局变量的用法
- 全局变量的用法
- 全局变量的用法
- 全局变量的用法
- block的用法, 全局变量
- 全局变量的用法
- XSL样式表
- 报表样式模板 xsl
- XSL样式表1
- 嵌入式知识结构梳理
- 试题第一版
- 【OGG-01161】源端表结构发生变化导致replicat进程abend
- Linechart + Datagrid 互动展示数据 (Linechart自定义数据点选择线)
- gtest学习
- xsl样式解析时全局变量的用法
- Zsh安装CMake补全脚本进行CMake命令补全
- shell的内部命令和外部命令
- JPA注解的使用,用于实体类的注解
- 工业相机知识
- oracle 断开当前用户
- AFNetwork网路请求 队列代码
- Word Search:from LeetCode
- 史上最全的maven pom.xml文件教程详解