亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > XML > 正文

跟我學XSL——XSL模板與匹配模式

2024-09-05 20:46:55
字體:
來源:轉載
供稿:網友

我們都知道,短的文檔、程序十分好讀,但當規模增大后,其復雜性也以更快的速度增加。

XSL模板將XSL的設計細化成一個個模板(塊),最后再將這些模板(塊)組合成一個完整的XSL;好比船與集裝箱,我們不是將所有的貨物一件件地堆起來,而是裝在各自的集裝箱中,然后再在船上將這些集裝箱堆放起來。這種方法可以使你先從整體上考慮整個XSL的設計,然后將一些表現形式細化成不同的模塊,再具體設計這些模塊,最后將它們整合在一起,這樣,將宏觀與微觀結合起來,符合人們條理化、規范化要求。

裝集裝箱??書寫模板(塊):< xsl:template > 

語法:

< xsl:template match="node-context" language="language-name" >

屬性:

(1)match ── 確定什么樣的情況下執行此模板。作為一種簡化的說明,在此處使用標記的名字;其中最上層模板必須將match設為“/”

(2)language ── 確定在此模板中執行什么腳本語言,其取值與HTML中的SCRIPT標記的LANGUAGE屬性的取值相同,缺省值是Jscript

< xsl:template >用match屬性從XML選取滿足條件的節點,征對這些特定的節點形成一個特定輸出形式的模板。

吊集裝箱上船-??調用模板(塊):< xsl:apply-templates >

語法:

< xsl:apply-templates select="pattern" order-by="sort-criteria-list" >

屬性:

(1)select ── 確定在此上下文環境中應執行什么模板,即選取用< xsl:template >標記建立的模板(塊)。

(2)order-by ── 以分號(;)分隔的排序標準,通常是子標記的序列

示例:

以個人簡歷為例,為便于處理我們希望“技能”中每一項都用標記對< skill >< /skill >括起來,有多少項技能就有多少個這種標記對,經過修改后的個人簡歷XML文檔內容如下:

< ?xml version="1.0" encoding="GB2312"? >
        < ?xml:stylesheet type="text/xsl" href=http://www.blue1000.com/article/"resume_template.xsl"? >
        < document >
        < resume >
        < name >禹希初< /name >
        < sex >男< /sex >
        < birthday >1977.5< /birthday >
        < skill >數據庫設計與維護< /skill >
        < skill >WEB開發< /skill >
        < /resume >
        < /document >

然后,建立一個新XSL文件resume_template.xsl,采用模板的形式,其內容如下:

< ?xml version="1.0" encoding="GB2312"? >
        < xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl" >
        < !--根模板-- >
        < xsl:template match="/" >
        < HTML >< HEAD >< TITLE >個人簡歷< /TITLE >< /HEAD >
        < BODY >
        < xsl:apply-templates select="document/resume"/ >
        < /BODY >
        < /HTML >
        < /xsl:template >
        < !--簡歷模板-- >
        < xsl:template match="resume" >
        < TABLE border="1" cellspacing="0" >
        < CAPTION >個人簡歷(
        < xsl:eval >formatIndex(childNumber(this), "I")< /xsl:eval >
        )< /CAPTION >
        < xsl:apply-templates select="name" / >
        < xsl:apply-templates select="sex" / >
        < xsl:apply-templates select="birthday" / >
        < TR/ >
        < TD >技能< /TD >< TD COLSPAN="5" >
        < TABLE cellspacing="0" >
        < xsl:apply-templates select="skill"/ >
        < /TABLE >
        < /TD >
        < /TABLE >
        < BR/ >
        < /xsl:template >
        < !--姓名模板-- >
        < xsl:template match="name" >< TD >姓名< /TD >
        < TD >< xsl:value-of/ >< /TD >
        < /xsl:template >
        < !--性別模板-- >
        < xsl:template match="sex" >< TD >性別< /TD >
        < TD >< xsl:value-of/ >< /TD >
        < /xsl:template >
        < !--生日模板-- >
        < xsl:template match="birthday" >< TD >生日< /TD >
        < TD >< xsl:value-of/ >< /TD >
        < /xsl:template >
        < !--技能模板-- >
        < xsl:template match="skill" >
        < TR >< TD >< xsl:value-of/ >< /TD >< /TR >
        < /xsl:template >
        < /xsl:stylesheet >

保存文件,打開文件(個人簡歷.xml),效果令人滿意吧。其實要做到同樣的效果,用前面三周介紹的方法也可做,但你得把它作為一整體考慮。

在上面的XSL文件中,我們將性別、生日、技能等數據項分別用模板來單獨寫,再用< xsl:apply-template >來調用,這樣,即使你日后要對這些模板作相應的修改與擴充也很方便,不致于出現互相干擾、混雜不清的情況。這種從上至下、逐層細化的設計方法,極大地減少工作復雜程度,也大大減少了差錯的產生,可以實現多人的協作設計。

注意:如果XML文檔中不同標記有同名的子標記,在為其編寫模板時,應把父標記作為其前綴,格式為(parent_mark/child_mark)。

模板文件必須有一個根模板,其屬性match是“/”。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
一本色道久久综合亚洲精品小说| 亚洲最大成人在线| 91在线直播亚洲| 欧美性生交xxxxxdddd| 亚洲男女自偷自拍图片另类| 精品久久中文字幕| 国产精品日本精品| 欧美一区二粉嫩精品国产一线天| 狠狠色噜噜狠狠狠狠97| 国产精品中文字幕在线观看| 亚洲一区二区福利| 欧美在线视频免费观看| 亚洲国产高潮在线观看| 亚洲欧美成人一区二区在线电影| 色久欧美在线视频观看| 欧美www在线| 色综合亚洲精品激情狠狠| 91在线免费看网站| 美日韩精品视频免费看| 日本久久中文字幕| 国产日韩精品综合网站| 欧美视频在线观看 亚洲欧| 中文字幕亚洲一区| 日韩免费看的电影电视剧大全| 91精品免费久久久久久久久| 国产日韩欧美视频| 亚洲亚裔videos黑人hd| 91久久嫩草影院一区二区| 欧美性高跟鞋xxxxhd| 国产ts一区二区| 国产精品福利网| 国产欧美精品一区二区三区介绍| 美日韩丰满少妇在线观看| 欧美噜噜久久久xxx| 国产一区二区三区在线观看网站| 国产精品视频播放| 国产精品久久久久久五月尺| 91丨九色丨国产在线| 亚洲欧美国产精品久久久久久久| 最新亚洲国产精品| 九九九久久久久久| 亚洲aa中文字幕| 日韩av综合网| 久久成年人视频| 国产小视频国产精品| 在线视频国产日韩| 欧美日韩在线视频一区| 亚洲精品视频免费| 日韩成人在线视频观看| 精品视频—区二区三区免费| 91久久久久久久久久久久久| 欧美成人午夜激情| 国产亚洲欧洲在线| xvideos国产精品| 日韩视频免费中文字幕| 国产成人高清激情视频在线观看| 中文字幕久久亚洲| 欧美日韩亚洲系列| 欧美激情视频在线免费观看 欧美视频免费一| 久久久免费精品视频| 中文字幕欧美专区| 亚洲欧美中文日韩v在线观看| 欧美做受高潮1| 欧美激情在线视频二区| 精品日韩视频在线观看| 一区二区在线免费视频| 激情久久av一区av二区av三区| 久久久久99精品久久久久| 日韩av电影在线免费播放| 日本成人精品在线| 97精品在线视频| 韩国一区二区电影| 欧美日韩精品在线播放| 97久久久免费福利网址| 亚洲激情小视频| 亚洲一区二区三区xxx视频| 欧美另类在线观看| 91国在线精品国内播放| 精品网站999www| 国产自产女人91一区在线观看| 91黑丝在线观看| 久久久国产精品亚洲一区| 欧洲中文字幕国产精品| 亚洲日本欧美中文幕| 色yeye香蕉凹凸一区二区av| 国产精品丝袜久久久久久高清| 亚洲香蕉成视频在线观看| 亚洲天堂男人天堂| 97在线观看免费| 日韩av中文字幕在线播放| 国产免费一区二区三区在线能观看| 国产精品久久久久福利| 91av网站在线播放| 亚洲qvod图片区电影| 欧美性xxxxx极品娇小| 日韩av在线免费播放| 国产精品自拍小视频| 国产成人精品网站| 久久综合久久八八| 92看片淫黄大片看国产片| 久久综合网hezyo| 日韩福利伦理影院免费| 在线播放亚洲激情| 日韩有码片在线观看| 国产在线日韩在线| 亚洲成人av资源网| 精品自拍视频在线观看| 久久精品男人天堂| 日韩亚洲一区二区| 国产一区红桃视频| 91色在线视频| 欧美成人性色生活仑片| 日韩成人在线播放| 一区二区三区回区在观看免费视频| 亚洲一区二区日本| 在线观看久久av| 亚洲精品电影在线观看| 懂色av影视一区二区三区| 55夜色66夜色国产精品视频| 日韩视频―中文字幕| 亚洲男人第一网站| 国产福利成人在线| 亚洲一区av在线播放| 97久久精品人搡人人玩| 国产自摸综合网| 成人网在线免费观看| 日韩中文字幕免费视频| 亚洲在线免费看| 欧美一级大片在线免费观看| 亚洲精品国产成人| 国内精品久久久久影院 日本资源| 中文欧美日本在线资源| 欧美肥老太性生活视频| 国产在线拍偷自揄拍精品| 欧美香蕉大胸在线视频观看| 久久久免费高清电视剧观看| 国产综合香蕉五月婷在线| 国产激情久久久久| 91网在线免费观看| 国产午夜精品全部视频在线播放| 久久久最新网址| 日韩高清免费观看| 久久久久久亚洲精品| 亚洲视屏在线播放| 久久久国产影院| 亚洲精品www久久久| 亚洲精品天天看| 日韩综合中文字幕| 亚洲国产毛片完整版| 91在线无精精品一区二区| 国产精品福利久久久| 97国产精品久久| 亚洲qvod图片区电影| 日韩av在线一区二区| 在线午夜精品自拍| 高清视频欧美一级| 国内揄拍国内精品| 日韩人体视频一二区| 在线成人激情黄色| 国产精品免费电影| 伊人男人综合视频网| 97不卡在线视频| 尤物tv国产一区| 日韩美女激情视频|