XSLT學習筆記


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中:

None.gifvar?xml?=?new?ActiveXObject("MSXML2.DOMDocument");
None.gifxml.load(
"filename.xml");
None.gifvar?xsl?
=?new?ActiveXObject("MSXML2.FreeThreadedDOMDocument");
None.gifxsl.load(
"filename.xsl");??????
None.gifvar?xslTemplate?
=?new?ActiveXObject("MSXML2.XSLTemplate");
None.gifxslTemplate.stylesheet?
=?xsl;
None.gifvar?xslProcessor?
=?xslTemplate.createProcessor();???
None.gifxslProcessor.input?
=?xml;
None.gifxslProcessor.addParameter(
"ParamName",?paramValue);
None.gifxslProcessor.transform();

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

轉載于:https://www.cnblogs.com/happyhippy/archive/2007/07/25/831576.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/448499.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/448499.shtml
英文地址,請注明出處:http://en.pswp.cn/news/448499.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

職場:人生從沒有最佳時機!一個離職客服人員的領悟

每個人都有感到失落迷惘的時候。 人生用專制又霸道的方式運行著&#xff0c;每當我們心想一切塵埃落定、生活穩固的時候&#xff0c;生活總愛給我們驚喜&#xff0c;粉碎我們短暫的安逸&#xff0c;讓我們不得不重新思考。 「我走對路了嗎?」 「我能夠賺更多錢、爬到更高的地位…

VS Code 的常用快捷鍵

VS Code 的常用快捷鍵和插件 一、vs code 的常用快捷鍵 前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 1、注釋&#xff1a; a) 單行注釋&#xff1a;[ctrlk,ctrlc] 或 ctrl/ b) 取消…

vue-axios interceptors

import axios from axios import cookie from js-cookie const options {baseURL: window.location.protocol process.env.BASE_API,headers: {},timeout: 20000 } const fetch axios.create(options)// request攔截器 fetch.interceptors.request.use(config > {if (coo…

數據結構排序法之雞尾酒排序法he快速排序法

雞尾酒排序&#xff0c;也叫定向冒泡排序&#xff0c;是冒泡排序的一種改進。此算法與冒泡排序的不同處在于從低到高然后從高到低&#xff0c;而冒泡排序則僅從低到高去比較序列里的每個元素。他可以得到比冒泡排序稍微好一點的效能。 // 兩兩互換 void swap (int* a, int i, …

VSCode 多開、環境對比

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 多開&#xff1a; 第一種&#xff1a;win10的開始菜單&#xff0c;在vscode圖標右鍵選擇“新開窗口”&#xff0c;這樣就多了一個vscode…

前言_工作兩年自我感觸

17年大學畢業&#xff0c;到今天整整工作兩年&#xff0c;從前端到數據分析&#xff0c;從上家公司&#xff08;簡稱A&#xff09;到現公司&#xff0c;想趁著今天是參加工作兩年的紀念日&#xff0c;回憶過往&#xff0c;結合現狀有感而發。 剛畢業的時候&#xff0c;啥都學&a…

數據結構排序法之堆排序he歸并排序

堆排序&#xff08;Heapsort&#xff09;是指利用堆這種數據結構所設計的一種排序算法。堆是一個近似完全二叉樹的結構&#xff0c;并同時滿足堆性質&#xff1a;即子結點的鍵值或索引總是小于&#xff08;或者大于&#xff09;它的父節點。 堆排序的時間&#xff0c;主要由建…

超詳細設置 Idea 類注釋模板和方法注釋模板

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 網上找了一下&#xff0c;沒有很詳細且正確介紹Idea配置注釋模板的&#xff0c;于是結合多篇文章自己琢磨整理出如下。 設置類注釋模板…

手動創建兩個文本文件text1.txt和text2.txt,按要求創建text3.txt

實現在text1.txt和text2.txt文件中除去首行和末尾對應的數據&#xff0c;要求三個文本內容如下&#xff1a; text1 text2 text3begin begin begin10 11 12 15 16 17 …

感情

團結 共患難的感情轉載于:https://www.cnblogs.com/yyjh/p/11139749.html

誰搶走了中國男人的老婆?

“老夫少妻”、“包二奶”、“洋媳婦”、“單身貴族”、“丁克家庭”都是當今最時髦的詞匯。這看似“你情我愿”的現象背后竟隱藏著巨大隱患! 目前中國男女比例是119&#xff1a;100&#xff0c;某些地區已達130&#xff1a;100;中國將有5百萬以上光棍&#xff0c;這對中國社會…

latex 幻燈片演示模板

http://zzg34b.w3.c361.com/templet/slide.htm轉載于:https://www.cnblogs.com/binterminator/articles/1621647.html

Linux 文件系統編程之系統調用和標準I/O庫

系統調用 訪問設備驅動程序的底層函數主要有&#xff1a; open:打開文件或者設備。 read:從打開的文件或者設備里面讀取數據。 write:向文件或者設備寫數據。 close:關閉文件或者設備。 open系統調用&#xff1a; #include <fcntl.h> #include <sys/types.h> #in…

mysql 索引:類型 、創建

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 一個簡單的對比測試 以我去年測試的數據作為一個簡單示例&#xff0c;20多條數據源隨機生成200萬條數據&#xff0c;平均每條數據源都重…

水調歌頭·中秋

轉載于:https://www.cnblogs.com/divineka/archive/2004/09/04/39560.html

代碼面試最常用的10大算法

摘要&#xff1a;面試也是一門學問&#xff0c;在面試之前做好充分的準備則是成功的必須條件&#xff0c;而程序員在代碼面試時&#xff0c;常會遇到編寫算法的相關問題&#xff0c;比如排序、二叉樹遍歷等等。 在程序員的職業生涯中&#xff0c;算法亦算是一門基礎課程&#…

fork與vfork的區別

fork與vfork的區別 1.vfork保證子進程先運行&#xff0c;在它調用exec或exit之后父進程才可能被調度運行。如果在調用這兩個函數之前子進程依賴于父進程的進一步動作&#xff0c;則會導致死鎖。 2.fork要拷貝父進程的進程環境&#xff1b;而vfork則不需要完全拷貝父進程的進程…

IDEA 2018 集成 MyBatis Generator 插件 詳解、代碼生成

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 1、修改maven的pom文件 只需要將如下依賴添加到pom.xml文件中即可。&#xff08;注意此處是以plugin的方式&#xff0c;放在<plugins…

MongoDB監控及報警

轉載請注明出處&#xff1a;https://www.cnblogs.com/shining5/p/11142357.html MongoDB監控及報警 Prometheus是由SoundCloud開發的開源監控報警系統和時序列數據庫&#xff0c;其使用go語言開發。基本原理是通過HTTP協議周期性抓取被監控組件的狀態&#xff0c;任意組件只要提…

umask命令:設置文件的默認權限掩碼

今天接觸到了掩碼&#xff0c;從博客上總結了一些關于掩碼解釋比較全面的分析&#xff0c;和大家分享下。 文件權限是linux系統中的一種安全機制&#xff0c;通過設置不同的權限&#xff0c;可以達到限制用戶操作的目的&#xff0c;有效地保證了文件的完整性。 默認的情況下&…