<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 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    XLS入門

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

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

    .XSL的轉(zhuǎn)換

    1.XML轉(zhuǎn)換成HTML
    XSL
    是如何將XML文檔轉(zhuǎn)換成HTML文件的呢?我們來(lái)看一個(gè)例子,下面是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數(shù)據(jù)轉(zhuǎn)換為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屬性用來(lái)定義源文件中的元素名。指定屬性的這種語(yǔ)法又稱為XML
    Pattern(
    模式),類似文件子目錄的表示形式。xsl:value-of元素用來(lái)在當(dāng)前層次中插入子元素的內(nèi)容模板。

    因?yàn)?/span>XSL樣式表自身也是一個(gè)XML文檔,因此,XSL文件的開(kāi)頭以一個(gè)XML聲明開(kāi)始。 xsl:stylesheet元素用來(lái)聲明這是一個(gè)樣式表文件。<xsl:template
    match="/">
    語(yǔ)句表示XML的源文檔在當(dāng)前目錄下。

    如果為XML文檔加上XSL樣式表,看下面代碼第2行,你的瀏覽器就可以精確的將XML 文檔轉(zhuǎn)換為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--在客戶端的實(shí)現(xiàn)

     

    1.JavaScript解決方案
    在上面的章節(jié)中我們已經(jīng)解釋了XSL是如何將XML轉(zhuǎn)換成HTML文件。方法就是在XML文檔的頭部加入一個(gè)XSL樣式表信息,然后讓瀏覽器執(zhí)行轉(zhuǎn)換過(guò)程。
    這種方法在大部分情況下都做得很好,但是在不支持XML的瀏覽器中就無(wú)法正確顯示了。
    一個(gè)更好的更全面的解決方案是使用Javascript來(lái)實(shí)現(xiàn)XMLHTML的轉(zhuǎn)換。但是使用JavaScript必須得到以下功能支持:
    a.
    允許Javascript代替瀏覽器進(jìn)行細(xì)節(jié)檢測(cè);
    b.
    根據(jù)不同的需要和不同的瀏覽器使用不同的樣式表。
    對(duì)于XSL來(lái)說(shuō)這是完全可行的。設(shè)計(jì)XSL的目標(biāo)之一就是允許將一種格式轉(zhuǎn)換成另一種格式,支持不同的瀏覽器,支持不同的用戶需求。未來(lái)的瀏覽器的重要任務(wù)就是在客戶端執(zhí)行XSL的轉(zhuǎn)換工作。
    2.
    一個(gè)具體的實(shí)例
    下面是我們上面提到的一個(gè)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>

    注意,現(xiàn)在XML文件還沒(méi)有加入XSL樣式表,還沒(méi)有被轉(zhuǎn)換成HTML文件。
    下面是用JavaSript來(lái)實(shí)現(xiàn)最后轉(zhuǎn)換的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,您最好專門學(xué)習(xí)一下。
    第一段代碼建立一個(gè)Microsoft Parser(XMLDOM)解析的對(duì)象,并將XML文檔讀入內(nèi)存;第二段代碼建立另外一個(gè)對(duì)象并導(dǎo)入XSL文檔;最后一行代碼將XML文檔用XSL文檔轉(zhuǎn)換,并將結(jié)果輸出到HTML文件中。


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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲天堂一区二区三区四区| 四虎免费影院ww4164h| 成人黄动漫画免费网站视频| 一级成人生活片免费看| 国产亚洲3p无码一区二区| 免费a级毛片网站| 成年女人18级毛片毛片免费 | 亚洲人成人网站色www| 免费无码av片在线观看| 久久综合亚洲鲁鲁五月天| 亚洲人成网站观看在线播放| 免费看的成人yellow视频| 一级毛片**免费看试看20分钟| 免费人成激情视频| 免费福利网站在线观看| 老子影院午夜伦不卡亚洲| 亚洲美女一区二区三区| 亚洲高清在线播放| 四只虎免费永久观看| 成人毛片免费播放| 精品久久久久成人码免费动漫| 女bbbbxxxx另类亚洲| 亚洲精品永久在线观看| 亚洲 日韩经典 中文字幕 | 亚洲码和欧洲码一码二码三码| 免费A级毛片在线播放不收费| 精品视频在线免费观看| 在线观看免费视频一区| 亚洲日韩一区二区三区| 亚洲乱码在线卡一卡二卡新区| 亚洲乱码中文字幕手机在线| 免费一级一片一毛片| 国产美女无遮挡免费网站| 欧洲精品免费一区二区三区| 岛国大片免费在线观看| 国产精品白浆在线观看免费 | 白白国产永久免费视频| 无码国模国产在线观看免费| 久久国产乱子伦精品免费一| 95免费观看体验区视频| 久久er国产精品免费观看8|