1. 樣式聲明:
<xsl:stylesheet>或<xsl:transform>
?
2. XSLT常用元素:
2.1 <xsl:template>:創建模板
??? Match屬性的作用是使模板和XML元素相關聯
??? e.g.:<xsl:template match="\">......</xsl:template>
2.2 <xsl:value-of>:選取XML元素,并添加到已被轉換的輸出流中
??? e.g.:<xsl:value-of select = "xpath"/>
2.3 <xsl:for-each>:循環
2.4 <xsl:sort>:對結果進行排序
??? e.g.:<xsl:for-each select ="catalog/cd["article='Bob']">
??????????? <xsl:sort select="article"/>
??????????? .....
???????? </xsl:for-each>
?? 在我實際練習時,發現如果select屬性中若要帶參數,需要按照如下語法:<xsl:sort select="*[name()=$param1Name]" order="{$para2Name}"/>
2.5 <xsl:if>:相當于if-then
??? <xsl:if test="price>10">
??????? ......
??? </xsl:if>
2.6 <xsl:choose>:相當于if-then-else
??? <xsl:choose>
?????? <xsl:when test="expression">
?????????? ......
?????? </xsl:when>
?????? <xsl:otherwise>
?????????? ......
?????? </xsl:otherwise>
??? </xsl:choose>
?
3. XSLT常用函數
3.1 current():返回當前節點
??? e.g.:<xsl:value-of select="current()"/>
??? 等效于:<xsl:value-of select="."/>
3.2 document():訪問一個外部的XML文檔的節點
??? e.g.:<xsl:value-of select="document('other.xml')/root/xpath"/>
??? 實際應用中,貌似document后面的接的Xpath中不能帶參數變量,例如這樣會出現解析錯誤:"document('other.xml')/root/$paramName/ChildNode"
3.3 element-available():測試指定的元素是否能被XSLT處理器支持
??? e.g.:<xsl:when test="element-available('xsl:comment')">
???????????? 判斷是否支持注釋
???????? </xsl:when>
3.4 format-number():數字轉換為字符串
??? e.g.:<value-of select="format-number(500,'#.00')"/>
3.5 function-available():測試是否支持該函數
??? e.g.:<xsl:if test="function-availabel('current')">
???????????? ......
???????? </xsl:if>
3.6 generate-id():返回自增獨立唯一標識,類似于SQL中的identity(1,1)
3.7 key():使用由<xsl:key>指定的索引[index],從當前文檔中返回一個節點組;
??? e.g.: <xsl:for-each select="key('string','object')">
????????????? ......
????????? </xsl:for-each>
3.8 system-property():返回通過name屬性指定的系統屬性值
??? e.g.:<xsl:value-of select="system-property('xsl:version')"/>
3.9 unprased-entity-uri():返回未解析實體的URI.
?
4. JS傳參數給XSLT:
JS中:










XSLT中:
<param name="ParamName"></param>
用$ParamName取得參數的值???