1. XSLT常用元素:
1.1 <xsl:template>:创建模板
Match属性的作用是使模板和XML元素相关联
<xsl:template match="">......</xsl:template>
1.2 <xsl:value-of>:选取XML元素,并添加到已被转换的输出流中
<xsl:value-of select = "xpath"/>
1.3 <xsl:for-each>:循环
1.4 <xsl:sort>:对结果进行排序
<xsl:for-each select ="catalog/cd["article='Bob']"> <xsl:sort select="article"/> ..... </xsl:for-each>
在我实际练习时,发现如果select属性中若要带参数,需要按照如下语法:
<xsl:sort select="*[name()=$param1Name]" order="{$para2Name}"/>
<xsl:if test="price>10"> ...... </xsl:if>
<xsl:choose> <xsl:when test="expression"> ...... </xsl:when> <xsl:otherwise> ...... </xsl:otherwise> </xsl:choose>
2. XSLT常用函数
2.1 current():返回当前节点
<xsl:value-of select="current()"/>
<xsl:value-of select="."/>
2.2 document():访问一个外部的XML文档的节点
<xsl:value-of select="document('other.xml')/root/xpath"/>
2.3 element-available():测试指定的元素是否能被XSLT处理器支持
<xsl:when test="element-available('xsl:comment')"> 判断是否支持注释 </xsl:when>
2.4 format-number():数字转换为字符串
<value-of select="format-number(500,'#.00')"/>
2.5 function-available():测试是否支持该函数
<xsl:if test="function-availabel('current')"> ...... </xsl:if>
2.6 generate-id():返回自增独立唯一标识,类似于SQL中的identity(1,1)
2.7 key():使用由<xsl:key>指定的索引[index],从当前文档中返回一个节点组;
<xsl:for-each select="key('string','object')"> ...... </xsl:for-each>
2.8 system-property():返回通过name属性指定的系统属性值
<xsl:value-of select="system-property('xsl:version')"/>
2.9 unprased-entity-uri():返回未解析实体的URI.
3. JS传参数给XSLT:
JS中:
var xml = new ActiveXObject("MSXML2.DOMDocument"); xml.load("filename.xml"); var xsl = new ActiveXObject("MSXML2.FreeThreadedDOMDocument"); xsl.load("filename.xsl"); var xslTemplate = new ActiveXObject("MSXML2.XSLTemplate"); xslTemplate.stylesheet = xsl; var xslProcessor = xslTemplate.createProcessor(); xslProcessor.input = xml; xslProcessor.addParameter("ParamName", paramValue); xslProcessor.transform();
<param name="ParamName"></param>