XML學(xué)習(xí)筆記---實戰(zhàn)XSLT

          Posted on 2007-09-14 15:50 久城 閱讀(403) 評論(1)  編輯  收藏 所屬分類: XML
          學(xué)習(xí)了一下XSLT的語法,自己也編寫了幾個小例子實踐了一下。記錄如下:

          XSL與XSLT

          XSL consists of three parts:
          XSLT - a language for transforming XML documents
          XPath - a language for navigating in XML documents
          XSL-FO - a language for formatting XML documents

          XSLT stands for XSL Transformations
          XSLT is the most important part of XSL
          XSLT transforms an XML document into another XML document
          XSLT uses XPath to navigate in XML documents
          XSLT is a W3C Recommendation

          XSLT is a language for transforming XML documents into XHTML documents or to other XML documents.
          XPath is a language for navigating in XML documents.

          以上是在W3C上的一些摘錄,我的英文太差了,不敢翻譯,但還是可以簡單的意會的。

          總之,XSL和XSLT在狹義上是一致的。
          XSLT是XSL中最重要的一部分,
          XSLT是一種用來轉(zhuǎn)換XML文檔結(jié)構(gòu)的語言。
          將XML轉(zhuǎn)換為HTML,是目前XSLT最主要的功能。

          CSS與XSLT

          CSS同樣可以格式化XML文檔,但是它有嚴重的局限性,就是:
          1. CSS不能重新排序文檔中的元素;
          2. CSS不能判斷和控制哪個元素被顯示,哪個不被顯示;
          3. CSS不能統(tǒng)計計算元素中的數(shù)據(jù);

          所以,CSS適合用于靜態(tài)文檔。而XSLT雖然功能強大,但因為要重新索引XML結(jié)構(gòu)樹,所以消耗內(nèi)存比較多。因此,我們常常將它們結(jié)合起來使用,比如在服務(wù)器端用XSLT處理文檔,在客戶端用CSS來控制顯示。可以減少響應(yīng)時間。

          實踐

          XSLT的主要用途就是數(shù)據(jù)轉(zhuǎn)換應(yīng)用。
          具體實踐一下XSLT是如何對XML進行樣式轉(zhuǎn)化的。
          blog.xml

          <?xml version="1.0" encoding="gb2312"?>
          <?xml-stylesheet type="text/xsl" href="blog.xsl" ?> 
          <blogs>
            
          <blog>
              
          <name>久城的學(xué)習(xí)室</name>
              
          <author>久城</author>
              
          <url>http://www.aygfsteel.com/realsmy</url>
            
          </blog>
            
          <blog>
              
          <name>BeanSoft's Java Blog</name>
              
          <author>BeanSoft</author>
              
          <url>http://www.aygfsteel.com/beansoft</url>
            
          </blog>
          </blogs>

          blog.xsl

          <?xml version="1.0" encoding="GB2312"?>
          <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
              
          <xsl:template match="/">
                      
          <html>
                      
          <body>
                  
          <h2>BLOGS LIST</h2>
                  
          <xsl:apply-templates/> 
                  
          </body>
                  
          </html>
              
          </xsl:template>

              
          <xsl:template match="blog">
                
          <p>
                
          <xsl:apply-templates select="name" />
                
          <xsl:apply-templates select="author" />
                
          <xsl:apply-templates select="url" />
                
          </p>
              
          </xsl:template>

              
          <xsl:template match="name">
                BLOG NAME:
          <span style="color:#ff0000"><xsl:value-of select="."/></span><br/>
              
          </xsl:template>

              
          <xsl:template match="author">
                AUTHOR:
          <span style="color:#ff0000"><xsl:value-of select="."/></span><br/>
              
          </xsl:template>

              
          <xsl:template match="url">
                BLOG URL:
          <span style="color:#ff0000"><xsl:value-of select="."/></span><br/>
              
          </xsl:template>

          </xsl:stylesheet>

          用IE打開blog.xml,顯示如下:

          BLOGS LIST

          BLOG NAME:久城的學(xué)習(xí)室
          AUTHOR:久城
          BLOG URL:http://www.aygfsteel.com/realsmy

          BLOG NAME:BeanSoft's Java Blog
          AUTHOR:BeanSoft
          BLOG URL:http://www.aygfsteel.com/beansoft

          關(guān)于XSLT的語法
          參考:http://www.w3schools.com/xsl/default.asp

          很好的教程。

          后記

          XML通過XSLT的轉(zhuǎn)換,完全能夠?qū)崿F(xiàn)HTML的顯示效果,同時又做到了數(shù)據(jù)與顯示的分離。這讓我想到了應(yīng)用方面。

          我能想到的,一方面是一些共同的數(shù)據(jù)可以直接通過在客戶端訪問XML文件,XML文件再通過不同的XSLT轉(zhuǎn)換成不同的顯示效果顯示在頁面上,無意中發(fā)現(xiàn)CSDN社區(qū)的每一個帖子就是一個XML文件,可以繼續(xù)參考學(xué)習(xí)一下。

          另一方面,由HTML頁面通過腳本(Script)語言訪問xml文件和xsl文件,在用腳本語言進行轉(zhuǎn)換處理,輸出在HTML頁面上。如果腳本應(yīng)用JavaScript腳本,那不就是JavaScript和XML的技術(shù)應(yīng)用嗎?難道就是傳說中的AJAX?!從來沒有應(yīng)用過AJAX,只聽說過用AJAX實現(xiàn)異步數(shù)據(jù)傳遞。

          哈哈,突然有了沖動,下一個目標(biāo),學(xué)習(xí)一下AJAX。



          歡迎來訪!^.^!
          本BLOG僅用于個人學(xué)習(xí)交流!
          目的在于記錄個人成長.
          所有文字均屬于個人理解.
          如有錯誤,望多多指教!不勝感激!

          Feedback

          # re: XML學(xué)習(xí)筆記---實戰(zhàn)XSLT  回復(fù)  更多評論   

          2007-09-14 21:12 by 自在淳羽
          呵呵,我們項目中的顯示全部是用XSLT實現(xiàn)的,總體感覺這個技術(shù)是XML與HTML的紐帶,通過JAVA可以通過Document對象動態(tài)的生成XML文檔,然后又由XSLT做相對簡單的顯示處理,還可以融合CSS和Javascript把整個過程渾然一體。

          Copyright © 久城

          主站蜘蛛池模板: 寻乌县| 盐山县| 丽江市| 阜城县| 礼泉县| 翼城县| 陆丰市| 大新县| 丁青县| 聂荣县| 南川市| 那曲县| 罗田县| 通化县| 广平县| 河池市| 鲁山县| 高碑店市| 太白县| 鹤壁市| 永平县| 海城市| 黑水县| 尖扎县| 平阳县| 水城县| 杭锦旗| 南通市| 琼海市| 宝兴县| 大理市| 绵阳市| 永平县| 大邑县| 灌阳县| 德兴市| 沂水县| 盱眙县| 海淀区| 威信县| 天门市|