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"。
合法的过滤运算符:
- = (等于)
- != (不等于)
- < (小于)或<
- > (大于)或 >
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 > 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
------------------------