<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 3, comments - 15, trackbacks - 0, articles - 26
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    XLS入門

    Posted on 2007-04-09 15:01 morcble的blog 閱讀(175) 評論(0)  編輯  收藏

    . XSL入門
    1.XSL---XML
    的樣式表
    HTML
    網頁使用預先確定的標識(tags),這就是說所有的標記都有明確的含義,例如<p>是另起一行<h1>是標題字體。所有的瀏覽器都知道如何解析和顯示HTML網頁。
    然而,XML沒有固定的標識,我們可以建立我們自己需要的標識,所以瀏覽器不能自動解析它們,例如<table>可以理解為表格,也可以理解為桌子。由于XML的可擴展性,使我們沒有一個標準的辦法來顯示XML文檔。
    為了控制XML文檔的顯示,我們有必要建立一種機制,CSS就是其中的一種,但是XSL(eXtensible Stylesheet Language)是顯示XML文檔的首選樣式語言,它比CSS更適合于XML
    2.XSL ---
    不僅僅是一種樣式表
    XSL
    由兩部分組成:
    一是轉化XML文檔;二是格式化XML文檔。
    如果你不理解這個意思,可以這樣想:XSL是一種可以將XML轉化成HTML的語言,一種可以過濾和選擇XML數據的語言,一種能夠格式化XML數據的語言。(比如用紅色顯示負數。)
    3.XSL ---
    它能做什么?
    XSL
    可以被用來定義XML文檔如何顯示,可以將XML文檔轉換成能被瀏覽器識別的HTML文件,通常的,XSL是通過將每一個XML元素"翻譯"HTML元素,來實現這種轉換的。
    XSL
    能夠向輸出文件里添加新的元素,或則移動元素。XSL也能夠重新排列或者索引數據,它可以檢測并決定哪些元素被顯示,顯示多少。
    4.XSL
    IE5中的顯示
    注意:IE5.0中,并不能完全兼容W3C組織發布的最新XSL標準。因為IE5.0是在XSL標準最終確定以前發布的。微軟已經承諾在IE5.5中修正。

    .XSL的轉換

    1.XML轉換成HTML
    XSL
    是如何將XML文檔轉換成HTML文件的呢?我們來看一個例子,下面是XML文檔的一部分:

    <?xml version="1.0" encoding="ISO8859-1" ?>
    <CATALOG>
    <CD>
    <TITLE>Empire Burlesque</TITLE>
    <ARTIST>Bob Dylan</ARTIST>
    <COUNTRY>USA</COUNTRY>
    <COMPANY>Columbia</COMPANY>
    <PRICE>10.90</PRICE>
    <YEAR>1985</YEAR>
    </CD>
    ...

    然后我們將下面的XSL文件作為HTML的模板將XML數據轉換為HTML文件:

    <?xml version=''1.0''?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
    <xsl:template match="/">
    <html>
    <body>
    <table border="2" bgcolor="yellow">
    <tr>
    <th>Title</th>
    <th>Artist</th>
    </tr>
    <xsl:for-each select="CATALOG/CD">
    <tr>
    <td><xsl:value-of select="TITLE"/></td>
    <td><xsl:value-of select="ARTIST"/></td>
    </tr>
    </xsl:for-each>
    </table>
    </body>
    </html>
    </xsl:template>
    </xsl:stylesheet>

     

    在上面的代碼中, xsl:for-each元素的作用是定位XML文檔中的哪些元素需要按以下模板顯示。select屬性用來定義源文件中的元素名。指定屬性的這種語法又稱為XML
    Pattern(
    模式),類似文件子目錄的表示形式。xsl:value-of元素用來在當前層次中插入子元素的內容模板。

    因為XSL樣式表自身也是一個XML文檔,因此,XSL文件的開頭以一個XML聲明開始。 xsl:stylesheet元素用來聲明這是一個樣式表文件。<xsl:template
    match="/">
    語句表示XML的源文檔在當前目錄下。

    如果為XML文檔加上XSL樣式表,看下面代碼第2行,你的瀏覽器就可以精確的將XML 文檔轉換為HTML文件。

    <?xml version="1.0" encoding="ISO8859-1" ?>
    <?xml-stylesheet type="text/xsl" href="cd_catalog.xsl"?>
    <CATALOG>
    <CD>
    <TITLE>Empire Burlesque</TITLE>
    <ARTIST>Bob Dylan</ARTIST>
    <COUNTRY>USA</COUNTRY>
    <COMPANY>Columbia</COMPANY>
    <PRICE>10.90</PRICE>
    <YEAR>1985</YEAR>
    </CD>

    . XSL--在客戶端的實現

     

    1.JavaScript解決方案
    在上面的章節中我們已經解釋了XSL是如何將XML轉換成HTML文件。方法就是在XML文檔的頭部加入一個XSL樣式表信息,然后讓瀏覽器執行轉換過程。
    這種方法在大部分情況下都做得很好,但是在不支持XML的瀏覽器中就無法正確顯示了。
    一個更好的更全面的解決方案是使用Javascript來實現XMLHTML的轉換。但是使用JavaScript必須得到以下功能支持:
    a.
    允許Javascript代替瀏覽器進行細節檢測;
    b.
    根據不同的需要和不同的瀏覽器使用不同的樣式表。
    對于XSL來說這是完全可行的。設計XSL的目標之一就是允許將一種格式轉換成另一種格式,支持不同的瀏覽器,支持不同的用戶需求。未來的瀏覽器的重要任務就是在客戶端執行XSL的轉換工作。
    2.
    一個具體的實例
    下面是我們上面提到的一個XML文檔(cd_catalog.xml)例子的部分代碼:
    <?xml version="1.0" encoding="ISO8859-1" ?>
    <CATALOG>
    <CD>
    <TITLE>Empire Burlesque</TITLE>
    <ARTIST>Bob Dylan</ARTIST>
    <COUNTRY>USA</COUNTRY>
    <COMPANY>Columbia</COMPANY>
    <PRICE>10.90</PRICE>
    <YEAR>1985</YEAR>
    </CD>
    下面是完整的XSL文件(cd_catalog.xsl)

    <?xml version=''1.0''?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
    <xsl:template match="/">
    <html>
    <body>
    <table border="2" bgcolor="yellow">
    <tr>
    <th>Title</th>
    <th>Artist</th>
    </tr>
    <xsl:for-each select="CATALOG/CD">
    <tr>
    <td><xsl:value-of select="TITLE"/></td>
    <td><xsl:value-of select="ARTIST"/></td>
    </tr>
    </xsl:for-each>
    </table>
    </body>
    </html>
    </xsl:template>
    </xsl:stylesheet>

    注意,現在XML文件還沒有加入XSL樣式表,還沒有被轉換成HTML文件。
    下面是用JavaSript來實現最后轉換的HTML代碼:

    <html>
    <body>
    <script language="javascript">
    // Load XML
    var xml = new ActiveXObject("Microsoft.XMLDOM")
    xml.async = false
    xml.load("cd_catalog.xml")
    // Load the XSL
    var xsl = new ActiveXObject("Microsoft.XMLDOM")
    xsl.async = false
    xsl.load("cd_catalog.xsl")
    // Transform
    document.write(xml.transformNode(xsl))
    </script>
    </body>
    </html>

    上面代碼中使用了Javascript,如果你不知道如何寫JavaScript,您最好專門學習一下。
    第一段代碼建立一個Microsoft Parser(XMLDOM)解析的對象,并將XML文檔讀入內存;第二段代碼建立另外一個對象并導入XSL文檔;最后一行代碼將XML文檔用XSL文檔轉換,并將結果輸出到HTML文件中。


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 24小时日本电影免费看| 亚洲黄黄黄网站在线观看| 综合一区自拍亚洲综合图区 | 免费国产成人午夜电影| 成人自慰女黄网站免费大全| 亚洲天天在线日亚洲洲精| 日韩精品免费电影| 日韩精品无码免费专区午夜不卡| 亚洲国产一区在线观看| 久久亚洲国产成人精品无码区| 永久免费视频网站在线观看| 美女尿口扒开图片免费| 亚洲色图视频在线观看| www.91亚洲| 一个人免费高清在线观看| 久久久久久噜噜精品免费直播| 亚洲乱码一二三四区国产| 亚洲自偷自偷图片| 久久久久国色AV免费看图片| 免费人成在线观看视频高潮| 男人的天堂av亚洲一区2区| 内射少妇36P亚洲区| 国产AV无码专区亚洲AWWW| 成人a视频片在线观看免费| 精品国产污污免费网站| 一级毛片免费播放试看60分钟| 亚洲午夜国产精品无卡| 久久亚洲AV午夜福利精品一区| 免费看国产一级特黄aa大片| 97人妻无码一区二区精品免费| 你是我的城池营垒免费观看完整版| 亚洲精品动漫免费二区| 亚洲国产精品综合久久久| 亚洲av日韩av高潮潮喷无码| 亚洲一本大道无码av天堂| 国产精品免费电影| 在线免费观看视频你懂的| 国产在线观看片a免费观看| 91精品免费不卡在线观看| 97在线视频免费公开视频| 成人免费视频一区二区|