xsl标签函数

http://www.w3school.com.cn/xml/xml_validator.asp

--xslt,xml方法

http://www.w3school.com.cn/xsl/xsl_w3celementref.asp

一、 XML验证器

字符串转换成数字格式

<PremAmt><xsl:value-of select='format-number($vTotalprem,"#.00")'/></PremAmt>

choose 选择

             <xsl:choose>
				<xsl:when test="Risk/InsuYear = '999'">//判断标签的值
					<CovPeriod></CovPeriod>
					</xsl:when>
				<xsl:otherwise>//其他情况
					<CovPeriod><xsl:value-of select="Risk/InsuYear"/></CovPeriod>
					</xsl:otherwise>
					 </xsl:choose>

call-template 定义转换

<Sex><xsl:call-template name="sex">//定义参数sex
	      <xsl:with-param name="rela">
	             <xsl:value-of select="Sex"/>//得到的值
		    </xsl:with-param>
	  </xsl:call-template></Sex> 
<xsl:template name="sex">//对前面定义的做处理,就像case选择一样
  <xsl:param name="rela"></xsl:param>
  <xsl:if test="$rela = 1">M</xsl:if>
  <xsl:if test="$rela = 0">F</xsl:if>
</xsl:template>

 for-each 循环

<xsl:for-each select="TXLife/TXLifeResponse/OLife/InsuredInfo">//循环的标签
		<xsl:if test="position() = 1">//统计第一个循环
     </xsl:if>
     <xsl:if test="position() = 2">
 </xsl:if>
</xsl:for-each>
<BeneficiaryCount>//count计数
       <xsl:variable name="count" select="count(TXLife/TXLifeResponse/OLife/InsuredInfo)"/>
		<xsl:value-of select="$count"></xsl:value-of>
		</BeneficiaryCount>

 

替换函数 2017-08-11 替换掉-

<SignDateEN><xsl:value-of select="translate($date,'-','')"/></SignDateEN>

截取函数 第一个参数是位置从1开始,第二个是几位

<xsl:variable name = "effdateEN" select="TXLife/TXLifeResponse/OLife/Policy/EffDate"/>

<EffDate><xsl:value-of select='substring($effdateEN, 1, 4)'/><xsl:value-of select='substring($effdateEN, 6, 2)'/><xsl:value-of select='substring($effdateEN, 9, 2)'/></EffDate>

 

XSLT 是一种用于将 XML 文档转换为 XHTML 文档或其他 XML 文档的语言。

XPath 是一种用于在 XML 文档中进行导航的语言。

正确的样式声明:

把文档声明为 XSL 样式表的根元素是 <xsl:stylesheet> 或 <xsl:transform>。

注释: <xsl:stylesheet> 和 <xsl:transform> 是完全同义的,均可被使用!

根据 W3C 的 XSLT 标准,声明 XSL 样式表的正确方法是:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

或者:

<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

如需访问 XSLT 的元素、属性以及特性,我们必须在文档顶端声明 XSLT 命名空间。

xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 指向了官方的 W3C XSLT 命名空间。如果您使用此命名空间,就必须包含属性 version="1.0"。

合法的过滤运算符:

  • =  (等于)
  • != (不等于)
  • &lt; (小于)或<
  • &gt; (大于)或 >

xsl<template> 

xsl<value-of>

xsl<for-each>

           <xsl:for-each select="catalog/cd">循环标签

   <xsl:for-each select="catalog/cd[artist='Bob Dylan']">过滤标签,选定一个条件循环查找输出

xsl<sort>      <xsl:sort select="artist"/>按照select标签排序

xsl<if>

 

xsl<choose>

可以直接父标签的子标签

<xsl:for-each select="catalog/cd">
<tr>
<td><xsl:value-of select="title"/></td>
<xsl:choose>
<xsl:when test="price &gt; 10">
<td bgcolor="#ff00ff">
<xsl:value-of select="artist"/></td>
</xsl:when>
<xsl:otherwise>
<td><xsl:value-of select="artist"/></td>
</xsl:otherwise>
</xsl:choose>
</tr>
</xsl:for-each>

除法

<xsl:choose>

<xsl:when test="Upd_Loan_Amt = ''">

<LoanAmt>0</LoanAmt>

</xsl:when>

<xsl:otherwise>

<LoanAmt><xsl:value-of select="number(Upd_Loan_Amt) * number(100) div 100 "/></LoanAmt>

</xsl:otherwise>

</xsl:choose>

 

二、 函数大全 http://blog.csdn.net/ccsdba/article/details/1635050

count() 返回结点个数 number=count(node-set) 

 

id() Selects elements by their unique ID node-set=id(value) 

last() 返回最后一个结点的需要 number=last() 

local-name() Returns the local part of a node. A node usually consists of a prefix, a colon, followed by the local name string=local-name(node) 

name() 返回一个结点的名称 string=name(node) 

namespace-uri() 返回一个结点的名称空间 uri=namespace-uri(node) 

 

position() 返回结点序号 number=position() 

 

format-number($vTotalprem,"#.00") 格式转换

 

String Functions

Name Description Syntax & Example 

concat() 返回一个将N个字符串连接的值 string=concat(val1, val2, ..) 

示例:

concat('The',' ','XML')

返回结果: 'The XML'

 

contains() 如果val包含substr则返回true bool=contains(val,substr)

示例:

contains('XML','X')

返回结果: true

 

normalize-space() 删除多余空格 string=normalize-space(string) 

示例:

normalize-space(' The   XML ')

返回结果: 'The XML'

 

starts-with() 如果String以substr开始则返回true bool=starts-with(string,substr) 

示例:

starts-with('XML','X')

返回结果: true

 

string() 将数字转换为字符 string(value) 

示例:

string(314)

返回结果: '314'

 

string-length() 返回一个字符串的长度 number=string-length(string) 

示例:

string-length('Beatles')

返回结果: 7

 

substring() 将string从start开始一直截取到第length位 string=substring(string,start,length) 

示例:

substring('Beatles',1,4)

返回结果: 'Beat'

 

substring-after() 将string以substr分割,选取最后一个 string=substring-after(string,substr)

示例:

substring-after('12/10','/')

返回结果: '10'

 

substring-before() 将string以substr分割,选取第一个 string=substring-before(string,substr)

示例:

substring-before('12/10','/')

返回结果: '12'

 

translate() 对字串进行替换操作 string=translate(value,string1,string2) 

示例:

translate('12:30',':','!')

返回结果: '12!30'

 

Number Functions

Name Description Syntax & Example 

ceiling() 返回一个整数 number=ceiling(number) 

示例:

ceiling(3.14)

返回结果: 4

 

floor() 返回一个整数 number=floor(number)

示例:

floor(3.14)

返回结果: 3

 

number() 将字符型转为数字 number=number(value)

示例:

number('100')

返回结果: 100

 

round() 返回一个实数的四舍五入的整数值 integer=round(number) 

示例:

round(3.14)

返回结果: 3

 

sum() 返回结点值的和 number=sum(nodeset) 

示例:

sum(/cd/price)

 

Boolean Functions

Name Description Syntax & Example 

boolean() Converts the value argument to Boolean and returns true or false bool=boolean(value) 

false() 返回false false() 

示例:

number(false())

返回结果: 0

 

lang() Returns true if the language argument matches the language of the the xsl:lang element, otherwise it returns false bool=lang(language) 

not() Returns true if the condition argument is false, and false if the condition argument is true bool=not(condition) 

示例:

not(false())

 

true() Returns true true() 

示例:

number(true())

返回结果: 1

----------------------------

xsl:apply-imports 

xsl:apply-templates 

xsl:attributes 

xsl:call-template 

xsl:choose 

xsl:comment 

xsl:copy 

xsl:copy-of 

xsl:element 

xsl:fallback 

xsl:for-each 

xsl:if 

xsl:message 

xsl:number 

xsl:processing instruction 

xsl:text 

xsl:value-of 

xsl:variable 

------------------------

 


版权声明:本文为qq_34884302原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。