當(dāng)前訪問本站: hits

          yjhmily

          堅(jiān)持走自己的路……

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            100 Posts :: 8 Stories :: 353 Comments :: 0 Trackbacks
          因?yàn)樽罱獙?shí)現(xiàn)XML轉(zhuǎn)HTML的功能!所以研究了一下XSL技術(shù)!感覺還不錯(cuò)!這里與大家分享!希望對(duì)XSL新手有幫助!

          下面的概念將說的有點(diǎn)大,(如果比較暈的話就別看了!直接跳到星號(hào)線以下)

          什么是XSL :
          可擴(kuò)展的樣式語言(Extensible Style LanguageXSL)包括變換語言(transformation language)和格式化語言(formatting language)。每種語言都是一個(gè)XML應(yīng)用程序。變換語言提供定義規(guī)則的元素如何將XML文檔變換成另一個(gè)XML文檔。被變換的XML文檔可能使用原文檔的標(biāo)記和DTD,或者使用一組完全不同的標(biāo)記。

          實(shí)際上,XSL是兩種語言,而不是一種。第一種語言是變換語言,第二種是格式化語言。變換語言是一種很有用的語言,它與格式化語言無關(guān)。它能夠把數(shù)據(jù)從一種XML表示移到另一種表示,這種功能,使它成為基于XML的電子商務(wù)、電子數(shù)據(jù)交換、元數(shù)據(jù)交換以及應(yīng)用于需要在相同數(shù)據(jù)的不同XML表示之間進(jìn)行轉(zhuǎn)換的重要組成部分。由于缺乏對(duì)人們要瀏覽的顯示器上顯示數(shù)據(jù)的了解,這些用途還要結(jié)合起來使用。它們純粹是用來將數(shù)據(jù)從一種計(jì)算機(jī)系統(tǒng)或程序移到另一種計(jì)算機(jī)系統(tǒng)或程序中。

          XML基礎(chǔ) :

          眾所周知:每個(gè)結(jié)構(gòu)整潔的XML文檔都是樹形結(jié)構(gòu)(tree)。樹形結(jié)構(gòu)是一種數(shù)據(jù)結(jié)構(gòu),它是由連接起來的節(jié)點(diǎn)(node)組成的,這些節(jié)點(diǎn)起始于一個(gè)稱為根節(jié)點(diǎn)(root)的單節(jié)點(diǎn)。根節(jié)點(diǎn)連接它的子節(jié)點(diǎn),每個(gè)子節(jié)點(diǎn)可以連接零個(gè)或多個(gè)它自己的子節(jié)點(diǎn),依次類推。沒有自己的子節(jié)點(diǎn)的節(jié)點(diǎn)稱為葉節(jié)點(diǎn)(leave)。樹形結(jié)構(gòu)的圖表更像家譜,列出各個(gè)先輩的后代。樹形結(jié)構(gòu)最有用的特征是每個(gè)節(jié)點(diǎn)及其子節(jié)點(diǎn)也會(huì)形成樹形結(jié)構(gòu)。因此,一個(gè)樹形結(jié)構(gòu)就是所有樹形結(jié)構(gòu)的分級(jí)結(jié)構(gòu),在此分級(jí)結(jié)構(gòu)中,各樹形結(jié)構(gòu)都是由更小的樹形結(jié)構(gòu)建立的。

          正因?yàn)閄ML有這樣的特征,對(duì)于XSL,特性,命名域(namespace),處理指令以及注釋必須也作為節(jié)點(diǎn)看待.而且文檔的根節(jié)點(diǎn)必須與根(基本)元素區(qū)別開來.因此,XSL處理程序假定XML數(shù)形結(jié)構(gòu)包含下列七類節(jié)點(diǎn) :根節(jié)點(diǎn),元素,文本,特性,命名域,處理指令,注釋;

          **************************************************************************************************************************

          概述一下就是:?? XSL變換中,XSL處理程序讀取XML文檔和XSL樣式單?;谔幚沓绦蛟?span lang="EN-US">XSL樣式單中找到的指令,輸出新的XML文檔。


          實(shí)際上在使用中頻率最高的就是將一段XML通過XSL轉(zhuǎn)化為HTML,然后再頁面輸出.特別是在一些需要用到模板頁面的項(xiàng)目中,XSL的用處是比較大的!

          最快的學(xué)習(xí)莫過于看實(shí)例,下面我就基于XSL最簡(jiǎn)單的語法寫一個(gè)XSL的"Hello world"!呵呵!

          假定現(xiàn)在有一段這樣的XML:

          ?1?<!--XML?Example-->
          ?2?<root?value="選擇你喜歡的搜索引擎">
          ?3?<item?href="http://www.baidu.com">
          ?4?百度
          ?5?</item>
          ?6?<item?href="http://www.google.com">
          ?7?Google
          ?8?</item>
          ?9?</root>
          10?


          根據(jù)XML和將要顯示的頁面樣式,定義XSL文件:

          <!--?自定義的XSL文件-->
          <?xml?version="1.0"?encoding="UTF-8"??>
          <xsl:stylesheet?version="1.0"
          xmlns:xsl
          ="http://www.w3.org/1999/XSL/Transform">
          <xsl:output?method="html"?encoding="UTF-8"?/>
          <xsl:template?match="root">
          <!--?這里用來寫將要顯示在頁面上的HTML代碼-->
          <table>
          <tr>
          <xsl:value-of?select="@value"?/>
          </tr>
          <xsl:for-each>
          <tr>
          <a?href="{item/@href}">
          <xsl:value-ofselect="item"/>
          </a>
          </tr>
          </xsl:for-each>
          </table>
          </xsl:template>
          </xsl:stylesheet>
          ???


          轉(zhuǎn)換后生成的頁面效果:

          xslPic.JPG
          最后,我簡(jiǎn)單解釋一下上述XSL中用到的XSL語法:

          <xsl:value-of select="@value" />:?????????? 取XML文件中<root>節(jié)點(diǎn)的value屬性值;
          {item/@href}:??????????????????? ? ? ? ? ?? 取XML文件中<root>根節(jié)點(diǎn)下<item>的href屬性值;
          <xsl:value-of select="item"/>:???????????? 取XML文件中<root>根節(jié)點(diǎn)下<item>的內(nèi)容;
          <xsl:for-each></xsl:for-each>:????????????? 循環(huán)執(zhí)行標(biāo)簽體內(nèi)容;

          關(guān)于XSL的語法的是和應(yīng)用還有很多例子,我會(huì)在今后的文章中給出,歡迎大家指點(diǎn)!謝謝!

          預(yù)告:XSL初體驗(yàn)(二)-XSL常用語法



          ???
          ???








          posted on 2006-11-02 11:51 kangxm 閱讀(3485) 評(píng)論(1)  編輯  收藏 所屬分類: XML&XSL

          Feedback

          # re: XSL初體驗(yàn)(一)-XML轉(zhuǎn)HTML 2006-11-02 14:10 fef
          你是否才華橫溢而無奈沒有滿意的工作,

          你是否經(jīng)驗(yàn)不足而求職碰壁。

          沒關(guān)系,全球最大最早的網(wǎng)上軟件工廠已經(jīng)騰空出世了!

          即可注冊(cè)米鼠網(wǎng)會(huì)員,就可兼職,做項(xiàng)目,賺大錢。
          大家,推廣米鼠6,8群。米鼠6,8群32141736,32141620


            回復(fù)  更多評(píng)論
            


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 台东县| 萨嘎县| 汨罗市| 衡山县| 开鲁县| 乳源| 巴东县| 无极县| 光泽县| 高雄市| 全椒县| 凤凰县| 安顺市| 萨嘎县| 大方县| 荣成市| 泌阳县| 全南县| 家居| 青铜峡市| 剑阁县| 南乐县| 乌拉特前旗| 辰溪县| 承德县| 新兴县| 藁城市| 安乡县| 玉屏| 贡嘎县| 公主岭市| 射洪县| 大厂| 闸北区| 新郑市| 开远市| 衡水市| 新巴尔虎右旗| 搜索| 融水| 治多县|