亚洲国产精品人久久,亚洲va国产日韩欧美精品色婷婷,久久久久88色偷偷,免费人成黄页在线观看国际

17站長網(wǎng)

17站長網(wǎng) 首頁 編程教程XSLT教程

XSLT教程

XSLT教程

在計算機(jī)科學(xué)中,可擴(kuò)展樣式表轉(zhuǎn)換語言(英語:Extensible Stylesheet Language Transformations,縮寫XSLT)是一種樣式轉(zhuǎn)換標(biāo)記語言,可以將XML數(shù)據(jù)檔轉(zhuǎn)換為另外的XML或其它格式,如HTML網(wǎng)頁,純文字。XSLT最末的T字母表示英語中的“轉(zhuǎn)換”(transformation)。它是XSL規(guī)范中的一部分,最新的建議版本為XSL 3.0。

通常將XSLT稱為可擴(kuò)展樣式表語言轉(zhuǎn)換(EXtensible Stylesheet Language Transformation)是一種將XML文檔轉(zhuǎn)換為其他格式(如XHTML)的方法。 本教程介紹了XSLT的基礎(chǔ)知識,包含討論XSLT的所有基本組件以及示例。

以XSLT進(jìn)行格式轉(zhuǎn)換并不會變動原始的數(shù)據(jù)文件;而會以現(xiàn)有數(shù)據(jù)產(chǎn)生新的內(nèi)容格式。作為輸入的通常是XML數(shù)據(jù)檔,或者由支持XQuery和XPath的數(shù)據(jù)模型處理器,其它來源的數(shù)據(jù)也能被轉(zhuǎn)換,例如關(guān)系數(shù)據(jù)庫表格或地理信息系統(tǒng)。

XSL規(guī)范的另外一部分是XSLF(Formatting Objects,代表格式化對象),又稱XSL-FO或XSLFO,已逐漸被CSS 3.0所取代。XSLT是一種圖靈完備的語言,它可以指定計算機(jī)能運(yùn)行的任何計算。

XSLT歷史

XSLT受到函數(shù)式編程語言和字符串模式匹配語言(如SNOBOL和AWK)的影響。它最直接的前輩是DSSSL,即為SGML的文件樣式描述語言。

  • XSLT 1.0版本:XSLT是二十世紀(jì)末萬維網(wǎng)聯(lián)盟(W3C)可擴(kuò)展樣式表語言(XSL)開發(fā)工作的一部分,該項目還產(chǎn)出了XSL-FO和XPath。編訂XSLT規(guī)范的委員會成員,包括編輯James Clark,具備DSSSL的工作經(jīng)驗。W3C于1999年11月推薦發(fā)表了XSLT 1.0規(guī)范。

  • XSLT 2.0:XSL工作組在2001年嘗試新創(chuàng)1.1版本中斷之后,與XQuery工作組合作,產(chǎn)出了根基于XML綱要之上的XPath 2.0,具有更豐富的數(shù)據(jù)模型和類型系統(tǒng);而XSLT 2.0是由Michael Kay主導(dǎo)開發(fā)的,在2007年1月成為推薦狀態(tài)。然而至2010年,XSLT 1.0仍然被廣泛使用,因為客戶端的網(wǎng)絡(luò)瀏覽器尚未內(nèi)置支持XSLT 2.0,或因為處于LAMP架構(gòu)環(huán)境中。

  • XSLT 3.0:于2017年6月8日成為W3C推薦書。主要新功能有:

    • 流轉(zhuǎn)換:在以前版本中,整個輸入數(shù)據(jù)檔必須在處理之前被讀入內(nèi)存,在處理完成之前無法寫到輸出(盡管Saxon有流擴(kuò)展)。這個工作草案允許XML流,這對于處理內(nèi)存容納不下的過大數(shù)據(jù)檔,或者在XML管道中連串變換時,是有用處的。

    • 改進(jìn)大型樣式表的模塊化。

    • 改進(jìn)動態(tài)錯誤的處理,例如xsl:try指令。

    • 函數(shù)可以作為其它(高階)函數(shù)的參數(shù)。

設(shè)計模型與處理

XSLT處理器會取用一或多個XML源數(shù)據(jù)檔,加上一或多個XSLT樣式表,并處理它們以產(chǎn)生輸出文件。與廣泛實現(xiàn)的指令式編程語言(例如C編程語言)相反,XSLT是宣告式的。基本處理的范式是模式配比。模板規(guī)則只定義如何處理特定XPath模式相符的節(jié)點,而不是列出在具有狀態(tài)的環(huán)境中運(yùn)行的一系列動作;處理器在遇到某一模式匹配時,那么模板規(guī)則的內(nèi)容就包含了,以函數(shù)式語句評估的直接成果:即結(jié)果樹,它是處理器輸出的基礎(chǔ)。

處理器遵循固定的算法。首先,假設(shè)樣式表已經(jīng)讀取和準(zhǔn)備好了,處理器從輸入的XML數(shù)據(jù)檔創(chuàng)建來源代碼樹。然后處理來源樹的根節(jié)點,在樣式表中找到該節(jié)點相符的最佳模板,并評估模板的內(nèi)容。每一個模板中的指令通常要求處理器在結(jié)果樹中產(chǎn)生節(jié)點,或者與根節(jié)點相同的方式,處理來源樹中的其它節(jié)點。從結(jié)果樹中獲取輸出。

處理器實現(xiàn)

  • Altova RaptorXML 服務(wù)器:支持XSLT 1.0和2.0的跨平臺引擎,大部分XPath 3.0,以及XSLT 3.0工作草案中的一些功能;也有XQuery支持。允許指令列操作以及利用COM,Java和.NET的接口,并且還包括一個內(nèi)置的HTTP服務(wù)器。

  • Exselt:在.NET框架上以F#編寫成的XSLT 3.0流處理器。完全支持XSLT 3.0草案,XPath 3.0推薦標(biāo)準(zhǔn)和XDM 3.0推薦標(biāo)準(zhǔn)。

  • libxslt是根據(jù)MIT授權(quán)發(fā)布的開放庫,可商業(yè)化且重復(fù)使用。它以libxml為基礎(chǔ)并以C語言實現(xiàn),有快速的性能和可移植性。它支持XSLT 1.0和EXSLT擴(kuò)展。

    • 在指令列中可執(zhí)行xsltproc,它包含在macOS和許多Linux版本中,在微軟Windows系統(tǒng)則透過Cygwin使用。

    • Safari瀏覽器的WebKit引擎,和Chrome和Blink布局引擎,都利用libxslt庫進(jìn)行XSL轉(zhuǎn)換。

    • 在Python,Perl,Ruby,PHP,Common Lisp,Tcl和C++等編程語言中也有相對的綁定。

  • MSXML和.NET。MSXML包括XSLT 1.0處理器。從MSXML 4.0它包括指令列的工具程序msxsl.exe。

  • Saxon:XSLT 3.0和XQuery 3.1處理器,有獨(dú)立操作的開源和專有版本,也提供了可用于Java,JavaScript和.NET的庫。

  • QuiXSLT:由Innovimax和INRIA以Java編程語言實現(xiàn)的XSLT 3.0處理器。

  • Xalan:來自Apache Software Foundation的開源XSLT 1.0處理器,可以獨(dú)立使用,也適用于Java和C++。

  • 網(wǎng)絡(luò)瀏覽器:Safari,Chrome,F(xiàn)irefox,Opera 和Internet Explorer這些網(wǎng)絡(luò)瀏覽器都只支持XSLT 1.0;而如果以Saxon-CE和Frameless這樣的第三方協(xié)力產(chǎn)品,則可支持XSLT 2.0。瀏覽器有能力運(yùn)行XML文件的即時轉(zhuǎn)換,并在其視窗中顯示輸出。轉(zhuǎn)換方式有將XSL嵌入到XML數(shù)據(jù)檔中,或在XML數(shù)據(jù)檔中以導(dǎo)入XSL的指示來完成。由于Chrome的保守安全策略,可能無法使用導(dǎo)入XSL的指示。

  • XMLStarlet是“可用于轉(zhuǎn)換、查詢、驗證和編輯XML數(shù)據(jù)檔的一組指令列工具程序。它可以將XSLT樣式表應(yīng)用于XML數(shù)據(jù)檔”,而且不需要Java。它使用libxslt支持XSLT 1.0。 

  • Xuriella和Plexippus-xpath是用Common Lisp編程語言實現(xiàn)的XSLT 1.0處理器。

XSLT性能

早期大多數(shù)的XSLT處理器都是解釋器。近來字節(jié)碼越來越普遍,使用可移植的中間語言(如Java字節(jié)碼或.NET中間語言)作為目標(biāo)。然而,即使是解釋器的成品通常也提供單獨(dú)的分析和運(yùn)行階段,允許在內(nèi)存中創(chuàng)建優(yōu)化的表達(dá)式樹,并可重復(fù)使用以運(yùn)行多重轉(zhuǎn)換。在線上發(fā)行應(yīng)用程序時,這方式有顯著的性能優(yōu)勢,其中同樣的轉(zhuǎn)換每秒可多次應(yīng)用在不同的來源檔之上。這種分離處理反映在XSLT處理器的應(yīng)用編程接口(如JAXP)的設(shè)計中。

早期XSLT處理器很少被優(yōu)化過。讀取的樣式表成為文檔對象模型,而XSLT處理器會直接對它們產(chǎn)生作用。XPath引擎也沒有被優(yōu)化過。但是漸增地,XSLT處理器利用了函數(shù)式編程和數(shù)據(jù)庫查詢語言中發(fā)現(xiàn)的優(yōu)化技術(shù),例如表達(dá)式樹的靜態(tài)重寫(例如,將計算移出循環(huán)),以及惰性的流評估來減少過程中所占內(nèi)存的足跡(允許處理器對子表達(dá)式求值時,“提早退出”而不必運(yùn)行全部,例如following-sibling::*)。許多處理器還使用比一般DOM實現(xiàn)更有效率(在空間和時間上)的樹表達(dá)式。

2014年6月,Debbie Lockett和Michael Kay推出了一個開放源代碼的標(biāo)竿測試框架,名稱為XT-Speedo。

返回頂部
亚洲国产精品人久久,亚洲va国产日韩欧美精品色婷婷,久久久久88色偷偷,免费人成黄页在线观看国际
91视频在线观看免费| 亚洲欧美福利一区二区| 久久国产尿小便嘘嘘| 亚洲欧美另类图片小说| 免费成人av资源网| 欧美日韩www| 亚洲麻豆国产自偷在线| 成人国产一区二区三区精品| 亚洲男女毛片无遮挡| 色悠悠亚洲一区二区| 欧美性感一类影片在线播放| 成人avav在线| 精品日产卡一卡二卡麻豆| 91丨porny丨蝌蚪视频| 日韩欧美国产系列| 亚洲精品第一国产综合野| 日韩不卡手机在线v区| 在线观看视频91| 一区二区免费在线播放| 久久99热狠狠色一区二区| 国产夜色精品一区二区av| 欧美色男人天堂| 欧美电影免费提供在线观看| 国产精品传媒在线| 日韩理论片网站| 国产清纯美女被跳蛋高潮一区二区久久w| 亚洲精品成人在线| 欧美系列在线观看| 人妖欧美一区二区| 日日夜夜免费精品| 韩国成人在线视频| 亚洲一区中文在线| 成人91在线观看| 成年人午夜久久久| 欧美日韩国产小视频在线观看| 国产呦萝稀缺另类资源| 日韩经典一区二区| 激情另类小说区图片区视频区| 亚洲综合成人在线| 国产精品美女一区二区在线观看| 欧美精品三级在线观看| 日韩免费性生活视频播放| 自拍偷拍亚洲激情| 国产精品久久影院| 丝袜美腿一区二区三区| 欧美精品18+| 日韩免费成人网| 国产午夜精品一区二区三区视频| 国产在线播放一区三区四| www.激情成人| 欧美日韩一级片在线观看| 欧美视频完全免费看| 日韩欧美久久久| 日韩电影在线一区二区| 国产精品18久久久久| 免费成人结看片| 亚洲自拍偷拍九九九| 大陆成人av片| 91久久精品一区二区二区| 国产白丝网站精品污在线入口| 日本一不卡视频| 成人一区二区三区在线观看| 国产精品天美传媒沈樵| 国产精品国产自产拍高清av王其| 国产在线观看免费一区| 日本欧美一区二区三区| 91在线精品一区二区三区| 国产一区二区三区视频在线播放| 亚洲在线中文字幕| youjizz国产精品| 国产精品毛片大码女人| 亚洲国产美女搞黄色| 色婷婷精品久久二区二区蜜臂av| 色综合天天综合网天天狠天天| 久久精品国内一区二区三区| 国内精品久久久久影院薰衣草| 亚洲综合激情网| 国产精品久久久久一区二区三区共| 国产成人精品亚洲777人妖| 日韩激情在线观看| 亚洲最新在线观看| 国产成人午夜高潮毛片| 天堂在线亚洲视频| 99精品久久免费看蜜臀剧情介绍| 3751色影院一区二区三区| av亚洲精华国产精华精华| 欧美三日本三级三级在线播放| 青青草原综合久久大伊人精品优势 | 欧美一级xxx| 国产成人免费在线观看| 国产精品一二三四区| 99国产欧美另类久久久精品 | 久久久久久亚洲综合影院红桃 | 一区二区三区在线不卡| 精品伦理精品一区| 成人性生交大片免费看在线播放| 欧洲精品在线观看| 国产日韩一级二级三级| 国产精品99久久久久久有的能看 | 精品一区二区三区av| 激情欧美日韩一区二区| 精品亚洲aⅴ乱码一区二区三区| 国产一区二区日韩精品| 国产欧美日韩在线| 99re这里只有精品6| 夜色激情一区二区| 久久99精品国产| 亚洲人成网站精品片在线观看| 老司机精品视频线观看86| 国产精品夜夜爽| 欧美人与禽zozo性伦| 亚洲视频一区二区免费在线观看| 美洲天堂一区二卡三卡四卡视频| 中文字幕电影一区| 蜜桃av一区二区| 日日夜夜精品视频天天综合网| 欧美精品亚洲一区二区在线播放| 日韩精品一区第一页| 精品国产免费一区二区三区四区| 色综合久久久久久久久久久| 亚洲一区二区视频| 日韩亚洲电影在线| 日韩视频国产视频| 91女神在线视频| 国产亚洲精品aa午夜观看| 婷婷开心激情综合| 69堂亚洲精品首页| 国产一区二区电影| 中文字幕一区免费在线观看| av亚洲产国偷v产偷v自拍| 99国产麻豆精品| 94色蜜桃网一区二区三区| 国产乱妇无码大片在线观看| 日韩欧美一二三| 2023国产精品视频| 国产精品欧美久久久久无广告| 欧美激情一区二区三区| 91麻豆视频网站| 国产欧美一区二区精品仙草咪| 成人午夜av电影| 欧美日韩一区久久| 国产精品国产自产拍高清av| 亚洲人成伊人成综合网小说| 亚洲电影激情视频网站| 中文字幕一区二区三区在线播放| 成人毛片在线观看| 午夜私人影院久久久久| 亚洲精品国产一区二区精华液| 日韩一区国产二区欧美三区| 欧美自拍偷拍午夜视频| 懂色av一区二区在线播放| 男人的天堂亚洲一区| 99精品偷自拍| 国产精品欧美经典| 韩国毛片一区二区三区| 久久99久久99小草精品免视看| 毛片一区二区三区| 欧美一区二区三区啪啪| 国产一区二区91| 日韩1区2区3区| 亚洲一区免费视频| 亚洲综合图片区| 亚洲人一二三区| 国产精品视频一区二区三区不卡| 欧美性色黄大片| 在线影视一区二区三区| 精品国产一区久久| 国产二区国产一区在线观看| 欧美精品九九99久久| 国产精品白丝av| 亚洲已满18点击进入久久| jlzzjlzz亚洲女人18| 精品国产乱码久久久久久图片| 亚洲综合999| 婷婷综合另类小说色区| 亚洲亚洲人成综合网络| 午夜激情一区二区三区| 亚洲免费观看高清完整版在线观看熊| 天堂精品中文字幕在线| 一区二区欧美国产| 中国av一区二区三区| 国产精品免费丝袜| 亚洲另类一区二区| 欧美国产成人精品| 国产成人免费9x9x人网站视频| 久久夜色精品一区| 亚洲人被黑人高潮完整版| 国产精品久久久久久久裸模| 韩国毛片一区二区三区| 中文字幕中文字幕一区| 日韩一区二区视频在线观看| 成人一二三区视频| 久久久亚洲精华液精华液精华液| 看电视剧不卡顿的网站| 国产精品国产三级国产aⅴ中文| 久久久欧美精品sm网站| 午夜免费欧美电影| 成人午夜电影小说| 欧美日韩在线播放一区| 亚洲不卡av一区二区三区|