亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄
2。軟件包和模塊化開(kāi)發(fā)( xsl:package
3。高階功能和功能項(xiàng)目
4。使用xsl:try / xsl:catch
5。累加器:替換流中的全局變量
6。地圖和數(shù)組支持(XPath 3.1集成)
7。與JSON更好地集成
最後的想法
首頁(yè) 後端開(kāi)發(fā) XML/RSS教程 XSLT 3.0的XML轉(zhuǎn)換:什麼新功能?

XSLT 3.0的XML轉(zhuǎn)換:什麼新功能?

Sep 19, 2025 am 02:40 AM

XSLT 3.0引入了通過(guò)七個(gè)關(guān)鍵功能進(jìn)行現(xiàn)代化XML和JSON處理的重大進(jìn)步:1。使用XSL流式傳輸:Mode Streamable =“ Yes”啟用低模式,僅向前處理大型XML文件(如日誌或財(cái)務(wù)數(shù)據(jù)); 2。通過(guò)XSL:軟件包支持模塊化,可重複使用和版本的代碼庫(kù),改善團(tuán)隊(duì)協(xié)作和依賴(lài)關(guān)係管理; 3.高階功能允許作為參數(shù)傳遞,從其他功能返回並存儲(chǔ)在變量中,從而啟用功能編程模式; 4。使用XSL處理結(jié)構(gòu)化錯(cuò)誤處理:嘗試和XSL:處理不可靠的外部數(shù)據(jù)時(shí)的穩(wěn)健性; 5。蓄能器在流中提供狀態(tài)跟蹤,例如計(jì)數(shù)元素,而不會(huì)破壞內(nèi)存效率; 6。 XPATH 3.1地圖和數(shù)組的完整集成允許用於分組,查找和結(jié)構(gòu)化參數(shù)的複雜數(shù)據(jù)結(jié)構(gòu); 7。通過(guò)parse-json(),json-to-xml()和XML-to-json()的本機(jī)JSON支持可以在JSON和XML之間進(jìn)行直接轉(zhuǎn)換,從而使XSLT可用於現(xiàn)代API和微服務(wù)。這些功能一起使XSLT 3.0成為數(shù)據(jù)轉(zhuǎn)換的功能強(qiáng)大,功能性和可維護(hù)的語(yǔ)言,尤其是在使用Saxon He 9.8之類(lèi)的處理器時(shí)。

XSLT 3.0的XML轉(zhuǎn)換:什麼是新的?

XSLT 3.0比以前的版本帶來(lái)了重大改進(jìn),使XML轉(zhuǎn)換更強(qiáng)大,高效且易於使用,尤其是在現(xiàn)代處理環(huán)境中。如果您熟悉XSLT 1.0或2.0,則3.0中的更改不僅是增量;它們代表著向功能編程,更好的模塊化以及與XPATH 3.1和XQUERY(例如Xpath)和XQUERY等其他標(biāo)準(zhǔn)的更嚴(yán)格集成的轉(zhuǎn)變。

XSLT 3.0的XML轉(zhuǎn)換:什麼新功能?

這是XSLT 3.0中的新事物和有用的內(nèi)容:


1。使用xsl:mode streamable="yes"

早期XSLT版本的最大局限性之一是內(nèi)存使用情況。處理大型XML文件通常需要將整個(gè)文檔加載到內(nèi)存中,這可能是大數(shù)據(jù)的交易。

XSLT 3.0的XML轉(zhuǎn)換:什麼新功能?

XSLT 3.0引入了流支持,使您可以以遠(yuǎn)前,低內(nèi)存的方式處理XML文檔。

  • 使用xsl:mode帶有streamable="yes"模式來(lái)定義流模板。
  • 在流模式下僅允許某些XPATH表達(dá)式(例如,沒(méi)有preceding-sibling )。
  • 非常適合日誌文件,財(cái)務(wù)數(shù)據(jù)或任何大型XML提要。

例子:

 <XSL:模式流=“是”/>
<xsl:template match =“ record”>
  <輸出>
    <xsl:value of select =“@ID”/>
  </output>
</xsl:模板>

這使您可以處理XML的Gigabytes,而不會(huì)用完存儲(chǔ)器(用於企業(yè)ETL管道的耗盡)。


2。軟件包和模塊化開(kāi)發(fā)( xsl:package

XSLT 3.0引入了軟件包- 一種在項(xiàng)目中組織,重用和XSLT代碼的方式。

  • 使用xsl:package來(lái)定義可重複使用的模塊。
  • 軟件包可以導(dǎo)入其他軟件包,聲明依賴(lài)項(xiàng)並封裝功能。
  • 支持版本控制和名稱(chēng)空間,以更好地依賴(lài)關(guān)係管理。

這在團(tuán)隊(duì)環(huán)境或構(gòu)建共同轉(zhuǎn)換的庫(kù)時(shí)特別有用。

例子:

 <xsl:軟件包名稱(chēng)=“ my:utils” package-version =“ 1.0”>
  <xsl:函數(shù)名稱(chēng)=“ my:format-date”>
    <xsl:param name =“ date”/>
    <xsl:sequence select =“ format-date($ date,&#39;[d01]  -  [m01]  -  [y0001]&#39;)/>
  </xsl:函數(shù)>
</xsl:軟件包>

現(xiàn)在,您可以像任何現(xiàn)代編程語(yǔ)言一樣構(gòu)建和共享XSLT“庫(kù)”。


3。高階功能和功能項(xiàng)目

XSLT 3.0將功能視為一流值。您可以將函數(shù)作為參數(shù)傳遞,將其從其他功能中返回,然後將其存儲(chǔ)在變量中。

  • 使用function()語(yǔ)法來(lái)聲明函數(shù)類(lèi)型。
  • 啟用功能編程模式,例如映射,過(guò)濾和還原。

例子:

在
              select =“ function($ x){$ x * 2}”/>
<xsl:sequence select =“ $ doubleer(5)”/> <! - 返回10->

現(xiàn)在,您可以編寫(xiě)接受轉(zhuǎn)換邏輯作為參數(shù)的通用模板,即代碼重複使用。


4。使用xsl:try / xsl:catch

在XSLT 3.0之前,錯(cuò)誤處理受到限制。現(xiàn)在,您可以使用結(jié)構(gòu)化的異常處理。

  • xsl:try
  • 使用xsl:catch以處理特定或一般錯(cuò)誤。

例子:

 <XSL:嘗試>
  <xsl:select =“ doc(&#39;external.xml&#39;)”/>複製
  <xsl:catch>
    <錯(cuò)誤>無(wú)法加載文檔:<xsl:value of select =“?!?/> </error>
  </xsl:catch>
</xsl:try>

這使您的轉(zhuǎn)換在處理外部資源或不可靠的數(shù)據(jù)時(shí)更加可靠。


5。累加器:替換流中的全局變量

累加器可讓您在處理文檔(例如計(jì)數(shù)元素或跟蹤狀態(tài))時(shí)收集信息,甚至處?kù)读髅襟w模式。

  • xsl:accumulator定義。
  • 隨著處理器讀取輸入文檔的更新。
  • 在轉(zhuǎn)換過(guò)程中可訪問(wèn)而不會(huì)破壞流。

示例:計(jì)數(shù)所有<item>元素:

 <xsl:累加器名稱(chēng)=“ item-count” initial-value =“ 0”>
  <xsl:累加器規(guī)則匹配=“ item” select =“ $ value 1”/>
</xsl:累加器>

與全局變量不同,累加器可以逐步流和更新。


6。地圖和數(shù)組支持(XPath 3.1集成)

XSLT 3.0完全支持XPATH 3.1的地圖數(shù)組,從而實(shí)現(xiàn)複雜的數(shù)據(jù)結(jié)構(gòu)。

  • 地圖:鑰匙值對(duì)( map { "name": "John", "age": 30 }
  • 數(shù)組:有序序列( [1, 2, 3]

可用於分組,查找或傳遞結(jié)構(gòu)化參數(shù)。

例子:

 <xsl:變量name =“用戶(hù)” AS =“ map(*)*” select =“(
  地圖{&#39;id&#39;:1,&#39;名稱(chēng)&#39;:&#39;alice&#39;},
  地圖{&#39;id&#39;:2,&#39;名稱(chēng)&#39;:&#39;bob&#39;}
)“/>

這使XSLT更接近通用編程。


7。與JSON更好地集成

XSLT 3.0可以使用parse-json()json-to-xml() / xml-to-json()等函數(shù)直接解析和生成JSON。

  • 將JSON輸入轉(zhuǎn)換為XML進(jìn)行處理。
  • 輸出結(jié)果使用method="json"

例子:

 <XSL:模板匹配=“/”>
  <xsl:序列select =“ json-to-xml(unparsed-text(&#39;data.json&#39;))”/>
</xsl:模板>

並輸出JSON:

 <XSL:輸出方法=“ JSON”/>
<XSL:模板匹配=“/”>
  <xsl:map>
    <xsl:map-entry key =“&#39;消息&#39;” select =“&#39;hello&#39;”/>
  </xsl:map>
</xsl:模板>

現(xiàn)在,您可以使用消費(fèi)或產(chǎn)生JSON的API或微服務(wù)中的XSLT。


最後的想法

XSLT 3.0不僅僅是“ XSLT,但更快” - 它是XML(和JSON)轉(zhuǎn)換的現(xiàn)代功能性語(yǔ)言。支持:

  • 流(內(nèi)存效率)
  • 包裹(模塊化)
  • 高階功能(靈活性)
  • JSON和地圖(現(xiàn)代數(shù)據(jù))
  • 更好的錯(cuò)誤處理(魯棒性)

…即使在非XML重型生態(tài)系統(tǒng)中,它比以往任何時(shí)候都更有意義。

捕獲?並非所有處理器都支持XSLT 3.0。但是薩克森(Saxon He)(家庭版) ,尤其是9.8版,提供了可靠的支持,可以免費(fèi)使用。

因此,如果您卡在XSLT 1.0或2.0上,那麼值得升級(jí)工具鏈並學(xué)習(xí)新功能。收益更清潔,更快,更可維護(hù)的代碼。

基本上,XSLT 3.0感覺(jué)就像該語(yǔ)言終於長(zhǎng)大了。

以上是XSLT 3.0的XML轉(zhuǎn)換:什麼新功能?的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線(xiàn)上人工智慧工具。

Stock Market GPT

Stock Market GPT

人工智慧支援投資研究,做出更明智的決策

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)程式碼編輯軟體(SublimeText3)

熱門(mén)話(huà)題

了解maven中的pom.xml文件 了解maven中的pom.xml文件 Sep 21, 2025 am 06:00 AM

pom.xml是Maven項(xiàng)目的核心配置文件,它定義了項(xiàng)目的構(gòu)建方式、依賴(lài)關(guān)係及打包部署行為。 1.項(xiàng)目坐標(biāo)(groupId、artifactId、version)唯一標(biāo)識(shí)項(xiàng)目;2.dependencies聲明項(xiàng)目依賴(lài),Maven自動(dòng)下載;3.properties定義可複用變量;4.build配置編譯插件和源碼目錄;5.parentPOM實(shí)現(xiàn)配置繼承;6.dependencyManagement統(tǒng)一管理依賴(lài)版本。 Maven通過(guò)解析pom.xml執(zhí)行構(gòu)建生命週期,合理使用BOM和依賴(lài)管理可提升項(xiàng)目穩(wěn)

用node.js構(gòu)建簡(jiǎn)單的RSS饋送聚合器 用node.js構(gòu)建簡(jiǎn)單的RSS饋送聚合器 Sep 20, 2025 am 05:47 AM

要構(gòu)建一個(gè)RSS聚合器,需使用Node.js結(jié)合axios和rss-parser包來(lái)抓取並解析多個(gè)RSS源,首先初始化項(xiàng)目並安裝依賴(lài),然後在aggregator.js中定義包含HackerNews、TechCrunch等源的URL列表,通過(guò)Promise.all並發(fā)獲取並處理各源數(shù)據(jù),提取標(biāo)題、鏈接、發(fā)佈時(shí)間和來(lái)源,合併後按時(shí)間倒序排列,接著可通過(guò)控制臺(tái)輸出或用Express創(chuàng)建服務(wù)器將結(jié)果以JSON格式返回,最後可添加緩存機(jī)制避免頻繁請(qǐng)求,提升性能,從而實(shí)現(xiàn)一個(gè)高效、可擴(kuò)展的RSS聚合系統(tǒng)。

XSLT 3.0的XML轉(zhuǎn)換:什麼新功能? XSLT 3.0的XML轉(zhuǎn)換:什麼新功能? Sep 19, 2025 am 02:40 AM

XSLT3.0introducesmajoradvancementsthatmodernizeXMLandJSONprocessingthroughsevenkeyfeatures:1.Streamingwithxsl:modestreamable="yes"enableslow-memory,forward-onlyprocessingoflargeXMLfileslikelogsorfinancialdata;2.Packagesviaxsl:packagesupport

如何有效地流和解析千兆字節(jié)的XML文件 如何有效地流和解析千兆字節(jié)的XML文件 Sep 18, 2025 am 04:01 AM

要高效解析GB級(jí)XML文件,必須使用流式解析避免內(nèi)存溢出,1.使用流式解析器如Python的xml.etree.iterparse或lxml,逐事件處理並及時(shí)調(diào)用elem.clear()釋放內(nèi)存;2.僅處理目標(biāo)標(biāo)籤元素,通過(guò)標(biāo)籤名或命名空間過(guò)濾無(wú)關(guān)數(shù)據(jù),減少處理量;3.支持從磁盤(pán)或網(wǎng)絡(luò)流式讀取,結(jié)合requests和BytesIO或直接使用lxml迭代文件對(duì)象實(shí)現(xiàn)邊下載邊解析;4.優(yōu)化性能,清除父節(jié)點(diǎn)引用、避免存儲(chǔ)已處理元素、僅提取必要字段,並可結(jié)合生成器或異步處理提升效率;5.超大文件可考慮預(yù)

如何刮擦網(wǎng)站數(shù)據(jù)並從中創(chuàng)建RSS feed 如何刮擦網(wǎng)站數(shù)據(jù)並從中創(chuàng)建RSS feed Sep 19, 2025 am 02:16 AM

Checklegalconsiderationsbyreviewingrobots.txtandTermsofService,avoidserveroverload,andusedataresponsibly.2.UsetoolslikePython’srequests,BeautifulSoup,andfeedgentofetch,parse,andgenerateRSSfeeds.3.ScrapearticledatabyidentifyingHTMLelementswithDevTools

在React應(yīng)用程序中食用和顯示RSS feed 在React應(yīng)用程序中食用和顯示RSS feed Sep 23, 2025 am 04:08 AM

要將RSSfeed添加到React應(yīng)用中,需通過(guò)服務(wù)器端代理解決CORS限制並解析XML數(shù)據(jù),具體步驟如下:1.使用CORS代理(開(kāi)發(fā)階段)或創(chuàng)建服務(wù)器函數(shù)(生產(chǎn)環(huán)境)獲取RSSfeed;2.利用DOMParser將XML轉(zhuǎn)換為JavaScript對(duì)象;3.在React組件中請(qǐng)求該接口,獲取解析後的JSON數(shù)據(jù);4.渲染數(shù)據(jù)顯示標(biāo)題、鏈接、日期和描述,並對(duì)HTML內(nèi)容進(jìn)行安全處理;5.建議添加加載狀態(tài)、錯(cuò)誤處理、條目限制和服務(wù)器端緩存以?xún)?yōu)化體驗(yàn)。最終實(shí)現(xiàn)無(wú)需第三方API即可集成外部?jī)?nèi)容。

為什麼以及何時(shí)使用XML名稱(chēng)空間 為什麼以及何時(shí)使用XML名稱(chēng)空間 Sep 23, 2025 am 03:34 AM

XMLnamespacesareusedtopreventnamecollisionswhencombiningdifferentXMLvocabulariesinasingledocument.1)TheyavoidnameconflictsbyuniquelyidentifyingelementswiththesamelocalnamebutdifferentcontextsusingdistinctnamespaceURIs,asseenwithbook:titleandemp:title

DTD在XML文檔驗(yàn)證中的作用 DTD在XML文檔驗(yàn)證中的作用 Sep 24, 2025 am 03:41 AM

dtdplaysafoundationalRoleinxmldocumentValidationByDefiningAladaledements,屬性和DOCUMENTUMSTURE.1)itspecifies WhichElementsCanappear,Hishierarchical -Nesting,contentTypes,contentTypes,attributes,attributes,ant ant ant ant anddefaultValues.2)

See all articles