日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

学习XSLT(一)

發布時間:2025/4/5 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 学习XSLT(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
不太會進行理論的介紹,就拿例子來進行初步的介紹吧!呵呵,望大家見諒!歡迎大家給提意見!
??????先看一段XML文檔 XML
<?xml?version="1.0"?encoding="utf-8"??>
<Authors>
??
<Author>
????
<AuthorName?id="1">Author1</AuthorName>
????
<AuthorAddress>Address1</AuthorAddress>
????
<AuthorEmail>EMail1</AuthorEmail>
??
</Author>
??
<Author>
????
<AuthorName?id="2">Author2</AuthorName>
????
<AuthorAddress>Address2</AuthorAddress>
????
<AuthorEmail>EMail2</AuthorEmail>
??
</Author>
??
<Author>
????
<AuthorName>Author3</AuthorName>
????
<AuthorAddress>Address3</AuthorAddress>
????
<AuthorEmail>EMail3</AuthorEmail>
??
</Author>
</Authors>
??????這段文檔經過下面的XSLT文件 <?xml?version="1.0"?encoding="utf-8"?>

<xsl:stylesheet?version="1.0"
????xmlns:xsl
="http://www.w3.org/1999/XSL/Transform">
??
<xsl:output?method="xml"/>

??
<xsl:template?match="/">
????
<html>
??????
<body>
????????
<table?border="1px">
????????
<xsl:apply-templates/>
????????
</table>
??????
</body>
????
</html>
??
</xsl:template>
??
<xsl:template?match="Author">
????
<xsl:value-of?select="."/>
??
</xsl:template>
</xsl:stylesheet> 轉換會得到下面的xml文件 Result
<?xml?version="1.0"?encoding="utf-8"?>
<html>
??
<body>
????
<table?border="1px">

??????Author1
??????Address1
??????EMail1


??????Author2
??????Address2
??????EMail2


??????Author3
??????Address3
??????EMail3

????
</table>
??
</body>
</html>


對于這個.xsl文件:
<xsl:stylesheet>和<xsl:stylesheet>表示這個文檔是XSLT樣式表,version自然代表使用的版本,xmlns:xsl是標準的XML命名空間聲明。所有的XSLT文檔必須使用這個URI作為命名空間前綴。當然可以定義自己的命名空間,這樣可以避免不同的元素,屬性命名的沖突。當然xsl是習慣性的前綴,比較容易理解。也可以使用自定義的前綴名。

<xsl:output method="xml/>用于控制XSLT轉換的輸出格式(可以指定為xml.html.text),還有其他的可選屬性(如version來指明輸出xml文檔的版本 Encoding指定編碼方式)。

<xsl:template match="/"></xsl:template>定義XSLT模板規則,是XSLT中最主要的部分。XSLT代碼最終的目的是將XML文檔按照模板定義的規則進行輸出。屬性match用來指定匹配的模式,"/"代表選擇根節點,返回的將是根節點后代的集合,具體語法將在下一篇文章中介紹。其它可選屬性如name可以定義模板的名字,priority定義模板的優先級,mode定義模板的模式。???????????????name:作為一個模板的標識,就像一個人的名字。如果我們指定一個模板的name="NameXX"那么我們可以通過<xsl:call-template name="NameXX"/>來調用它。本例中<xsl:apply-templates/>就可以用<xsl:call-template name="NameXX"/>代替。???????????????priority指定模板的優先級。??????????????????mode:相當于選擇的作用,如果一個模板的mode被設定為"Y",那么<xsl:apply-templates mode="X"/>只會選擇與X同名的template,mode值為其它的template將不會得到使用。

<xsl:value-of select="."/>是選擇當前節點的值。因為"."匹配當前節點,返回值為當前節點以及其子節點集,所以所有的子節點值會被選擇出來。

其他的樣式表元素將在第二篇文章中介紹包括xsl:include,xsl:attibute-set,xsl:key,xsl:variable,xsl:param,xsl:if,xsl:when,xsl:otherwise,xsl:choose等!

如果有寫的不好的地方希望大家提出來,誠懇的接受批評指導。大家互相交流,共同提高!

轉載于:https://www.cnblogs.com/jingtao/archive/2007/07/27/833773.html

總結

以上是生活随笔為你收集整理的学习XSLT(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。