`
crowson
  • 浏览: 9872 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

XSL中几个封装的函数---布尔操作函数

XSL 
阅读更多
<!-- ======================================================== -->     
<!-- Function: BooleanOR(<value1>,<value2>) => number -->     
<!-- Parameters:- -->     <!-- <value1> - the first number to be ORed -->     
<!-- <value2> - the second number to be ORed -->     
<!-- NB. Only works with unsigned ints! -->     
<xsl:template name="BooleanOR">      
<xsl:param name="value1" select="number(0)"/>      
<xsl:param name="value2" select="number(0)"/>      
<!-- recurse parameters -->      
<xsl:param name="bitval" select="number(2147483648)"/>      
<xsl:param name="accum" select="number(0)"/>      
<!-- calc bits present on values -->      
<xsl:variable name="bit1" select="floor($value1 div $bitval)"/>      
<xsl:variable name="bit2" select="floor($value2 div $bitval)"/>      
<!-- do the OR on the bits -->      
<xsl:variable name="thisbit">      
<xsl:choose>      
<xsl:when test="($bit1 != 0) or ($bit2 != 0)">
<xsl:value-of select="$bitval"/>
</xsl:when>      
<xsl:otherwise>0</xsl:otherwise>      
</xsl:choose>      
</xsl:variable>      
<!-- if last recurse then output the value -->      
<xsl:choose>      
<xsl:when test="$bitval = 1">
<xsl:value-of select="$accum + $thisbit"/>
</xsl:when>      
<xsl:otherwise>      
<!-- recurse required -->      
<xsl:call-template name="BooleanOR">      
<xsl:with-param name="value1" select="$value1 mod $bitval"/>      
<xsl:with-param name="value2" select="$value2 mod $bitval"/>      
<xsl:with-param name="bitval" select="$bitval div 2"/>      
<xsl:with-param name="accum" select="$accum + $thisbit"/>      
</xsl:call-template>      
</xsl:otherwise>      
</xsl:choose>     
</xsl:template>          
<!-- ======================================================== -->     
<!-- Function: BooleanAND(<value1>,<value2>) => number -->     
<!-- Parameters:- -->     <!-- <value1> - the first number to be ANDed -->     
<!-- <value2> - the second number to be ANDed -->     
<!-- NB. Only works with unsigned ints! -->     
<xsl:template name="BooleanAND">      
<xsl:param name="value1" select="number(0)"/>      
<xsl:param name="value2" select="number(0)"/>      
<!-- recurse parameters -->      
<xsl:param name="bitval" select="number(2147483648)"/>      
<xsl:param name="accum" select="number(0)"/>      
<!-- calc bits present on values -->      
<xsl:variable name="bit1" select="floor($value1 div $bitval)"/>      
<xsl:variable name="bit2" select="floor($value2 div $bitval)"/>      
<!-- do the AND on the bits -->      
<xsl:variable name="thisbit">      
<xsl:choose>      
<xsl:when test="($bit1 != 0) and ($bit2 != 0)">
<xsl:value-of select="$bitval"/></xsl:when>      
<xsl:otherwise>0</xsl:otherwise>      
</xsl:choose>     
</xsl:variable>      
<!-- if last recurse then output the value -->      
<xsl:choose>      
<xsl:when test="$bitval = 1">
<xsl:value-of select="$accum + $thisbit"/>
</xsl:when>      
<xsl:otherwise>      
<!-- recurse required -->      
<xsl:call-template name="BooleanAND">      
<xsl:with-param name="value1" select="$value1 mod $bitval"/>      
<xsl:with-param name="value2" select="$value2 mod $bitval"/>      
<xsl:with-param name="bitval" select="$bitval div 2"/>      
<xsl:with-param name="accum" select="$accum + $thisbit"/>      
</xsl:call-template>      
</xsl:otherwise>      
</xsl:choose>     
</xsl:template>          
<!-- ======================================================== -->     
<!-- Function: BooleanXOR(<value1>,<value2>) => number -->     
<!-- Parameters:- -->     <!-- <value1> - the first number to be XORed -->     
<!-- <value2> - the second number to be XORed -->     
<!-- NB. Only works with unsigned ints! -->     
<xsl:template name="BooleanXOR">      
<xsl:param name="value1" select="number(0)"/>      
<xsl:param name="value2" select="number(0)"/>      
<!-- recurse parameters -->      
<xsl:param name="bitval" select="number(2147483648)"/>      
<xsl:param name="accum" select="number(0)"/>      
<!-- calc bits present on values -->      
<xsl:variable name="bit1" select="floor($value1 div $bitval)"/>      
<xsl:variable name="bit2" select="floor($value2 div $bitval)"/>      
<!-- do the XOR on the bits -->      
<xsl:variable name="thisbit">      
<xsl:choose>      
<xsl:when test="(($bit1 != 0) and ($bit2 = 0)) or (($bit1 = 0) and ($bit2     != 0))">
<xsl:value-of select="$bitval"/>
</xsl:when>      
<xsl:otherwise>0</xsl:otherwise>      
</xsl:choose>      
</xsl:variable>      
<!-- if last recurse then output the value -->      
<xsl:choose>      
<xsl:when test="$bitval = 1">
<xsl:value-of select="$accum + $thisbit"/>
</xsl:when>      
<xsl:otherwise>      
<!-- recurse required -->      
<xsl:call-template name="BooleanXOR">      
<xsl:with-param name="value1" select="$value1 mod $bitval"/>      
<xsl:with-param name="value2" select="$value2 mod $bitval"/>      
<xsl:with-param name="bitval" select="$bitval div 2"/>      
<xsl:with-param name="accum" select="$accum + $thisbit"/>      
</xsl:call-template>      
</xsl:otherwise>      
</xsl:choose>     
</xsl:template> 

 

分享到:
评论

相关推荐

    jmeter.results.shanhe.me.xsl和jmeter-results-detail-report_21.xsl报告结合

    jmeter.results.shanhe.me.xsl和jmeter-results-detail-report_21.xsl报告结合,在jmeter.results.shanhe.me.xsl的基础上增加summary,解决换行问题

    jmeter-results-report.zip|jmeter-results-report_21.xsl

    4个jmeter测试报告模板集合 jmeter.results.shanhe.me.xsl jmeter.results.zyanycall.me.xsl jmeter-results-detail-report_30.xsl jmeter-results-report_21.xsl

    用 xsl 中的各种函数为 XML 显示提供灵活性

    以下我们将详细探讨如何利用XSL中的各种函数为XML显示提供灵活性。 1. **字符串处理函数**: - `string()`:将值转化为字符串。 - `concat()`:连接多个字符串。 - `substring()`:提取字符串的一部分。 - `...

    XSL-FO 教程

    XSL-FO 简介 XSL-FO 的简介。包括其概念和作用。 XSL-FO 文档 本章将解 XSL-FO 文档的结构。 XSL-FO 区域 本章讲解 XSL-FO 的区域模型(area model)。 XSL-FO 输出 本章讲解 XSL-FO 文档的输出元素(Output ...

    Jmeter报告模板文件-jmeter-results-shanhe-me-xsl

    update 内容:1、用例搜索功能;2、Json缩进展示,对数据查找一目了然;3、页面顶部添加了项目相关信息(项目名称、版本号好展示等等)

    jmeter-results-shanhe-me.xsl报告模板

    jmeter报告样式

    jmeter-results-detail-report_30.xsl

    JMeter报告模板

    jmeter-results-detail-report_21.xsl

    jmeter测试报告模板jmeter-results-detail-report_21.xsl

    jmeter-results-detail-report_21接口测试报告优化-展示具体的请求及返回值

    在实际操作中,优化JMeter测试报告可能会包括以下几个方面: 1. **定制报告格式**:使用XSLT(可扩展样式表语言转换)来定制报告的布局和显示,使关键信息更加突出。 2. **增加可视化元素**:通过图表和图形来展示...

    docbook-style-xsl.zip

    在这个案例中,“docbook-style-xsl-1.75.2-6.el6.noarch.rpm”是DocBook样式XSL转换器的一个特定版本,适用于RPM支持的系统,如CentOS 6,而且是“noarch”的,意味着它不依赖特定的处理器架构,可以在任何兼容的...

    jmeter-results-shanhe-me.xsl

    在实际操作中,可能需要结合JMeter的脚本、测试计划以及测试执行后的数据,通过这个XSL模板生成具有洞察力的性能测试报告。对于进行性能优化和故障排查的IT专业人员来说,理解并能够自定义这种模板是非常有价值的...

    XSL 官方文档

    XPath函数参考.doc可能包含了XPath的各种内置函数,如字符串函数、数值函数、布尔函数、节点集函数等,这些函数能够帮助处理和操作XML数据。例如,`string()`用于获取节点的文本内容,`count()`计算节点集合的元素...

    docbook-style-xsl-1.75.2-6.el6.noarch.rpm

    docbook-style-xsl-1.75.2-6.el6.noarch.rpm

    【学习 XSL-FO】.pdf

    XSL-FO文档的结构和内容主要围绕以下几个核心概念: 1. **XSL-FO文档**:这些文档包含了输出信息,定义了XML数据的布局和样式。例如,它可以指定文本的字体、颜色、大小,以及页面的布局和分页等。 2. **XSL-FO...

    XSL开发基础参考资料

    XSL函数是XSLT(XSL Transformations)的一部分,它们用于处理XML数据,进行计算、字符串操作、逻辑判断等任务。例如,`normalize-space()` 函数用于去除字符串两端的空白并合并连续空格;`format-number()` 用于...

    苏州迅鹏SPB-XSL温度巡检仪 用户手册.pdf

    苏州迅鹏SPB-XSL温度巡检仪 用户手册pdf,苏州迅鹏SPB-XSL温度巡检仪 用户手册

Global site tag (gtag.js) - Google Analytics