<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 閱讀(177) 評論(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文件中。


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


    網站導航:
     
    主站蜘蛛池模板: 亚洲三级电影网站| 成人一a毛片免费视频| www.亚洲精品.com| 亚洲AV无码AV吞精久久| 黄瓜视频高清在线看免费下载| 亚洲国产综合专区电影在线| 黄网站色视频免费在线观看的a站最新| 亚洲最大的成人网站| 看全免费的一级毛片| 国产又粗又长又硬免费视频| 亚洲一区二区三区影院| 亚洲综合伊人制服丝袜美腿| 少妇亚洲免费精品| 四虎国产成人永久精品免费| 国产亚洲精品高清在线| a在线观看免费网址大全| 四虎永久在线精品视频免费观看| 亚洲丝袜美腿视频| 精品国产免费人成电影在线观看| 亚洲天堂福利视频| 成人免费视频一区二区| 国产亚洲AV夜间福利香蕉149| 一级毛片在线免费视频| 成**人免费一级毛片| MM1313亚洲精品无码久久| 任你躁在线精品免费| 久久精品a亚洲国产v高清不卡| 亚洲精品视频免费看| 国产亚洲精久久久久久无码AV| 99精品视频在线观看免费| 四虎影视永久免费视频观看| 曰韩无码AV片免费播放不卡| 亚洲色婷婷六月亚洲婷婷6月| 四虎成人精品永久免费AV| 亚洲av无码专区在线电影| 亚洲精品97久久中文字幕无码| 亚洲AV无码男人的天堂| 亚洲中文字幕无码一区二区三区| 57pao一国产成永久免费| jzzijzzij在线观看亚洲熟妇| 亚洲国产精品成人久久|