亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

XSLT模板如何轉換XML文檔

發布時間:2021-01-27 10:38:43 來源:億速云 閱讀:129 作者:小新 欄目:編程語言

小編給大家分享一下XSLT模板如何轉換XML文檔,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

    XML文檔只能表現數據的內容,而實際的數據則是要呈現在網頁中的。使用CSS可以格式化XML文檔,使它顯示出來,這個內容在上一篇中已經做了詳細的說明。除了CSS外,還有一種語言也可以在網頁中表現出XML數據內容,那就是XSL。XSL語言包括XSLT(XSL Transformation)和FO(Format Object)。XSLT文檔可以將XML文檔轉化為其它文檔形式,如HTML、Text等。FO用于格式化輸出,由于W3C對FO還形成統一標準,這里將只說明XSLT的用法。

    使用XSLT時最重要的部分是選擇XML節點值和創建模板。創建模板使用的標簽是<xsl:template></xsl:template>,通常這個標簽需要一個match屬性,用來確定它所匹配的XML節點。選擇XML節點值使用的標簽是<xsl:value-of  />,這個標簽需要select屬性來確定它匹配的XML節點。下面將用一個簡單的例子說明,看下面的XML文檔:

1 <?xml version="1.0" encoding="utf-8"?>
2 <?xml-stylesheet type="text/xsl" href="stylesheet.xslt"?>
3 <xml>
4   <book>
5     <name>Xml應用系列</name>
6     <author>學路的小孩</author>
7     <date>2009-03-23</date>
8   </book>
9 </xml>

    代碼說明:第一行是XML文件的聲明部分;第二行聲明引入XSLT文件,type屬性說明文件的類型是text/xsl,href屬性指向一個XSLT文件,文件名為stylesheet.xslt。第三行以后為XML文檔部分。下面是stylesheet.xslt的內容:

1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 3   <xsl:template match="/">
 4     <html>
 5       <head>
 6         <title>第一個XSLT文件</title>
 7       </head>
 8       <body>
 9         <xsl:apply-templates select="xml"></xsl:apply-templates>
10       </body>
11     </html>
12   </xsl:template>
13   <xsl:template match="xml"> 
14     <table style="background-color:orange">
15       <tr>
16         <th>書名</th>
17         <th>作者</th>
18         <th>日期</th>
19       </tr>
20       <xsl:apply-templates select="book"></xsl:apply-templates>
21     </table>
22   </xsl:template>
23   <xsl:template match="book">
24     <tr>
25       <td>
26         <xsl:value-of select="name"/>
27       </td>
28       <td>
29         <xsl:value-of select="author"/>
30       </td>
31       <td>
32         <xsl:value-of select="date"/>
33       </td>
34     </tr>
35   </xsl:template>
36 </xsl:stylesheet>

    代碼說明:由于XSLT文檔的格式依然是XML格式,所以第一行為XML的頭部聲明;第二行則是XSLT的版本和命名空間聲明,并且該標簽是XSLT文檔的跟節點。第三行使用<xsl:template></xsl:template>創建一個模板,select="/"表示匹配的是文檔的根節點。第四行到第十一行是這個節點要生成的HTML節點信息,其中第九行<xsl:apply-templates />標簽表示應用模板,其中select="xml"表示要調用的模板為匹配XML節點的模板,這個模板在第十三行出現。后面的所有行(除了第26行等)無非是這些內容的重復,不做太多介紹。第二十六行是選擇name標簽的內容。使用IE打開XML文件,顯示內容如下:    

XSLT模板如何轉換XML文檔

另外,XSLT還具有流程控制、條件選擇、循環處理、元素排序等功能。下面通過一個實例來說明,其中XML文檔內容如下:

1 <?xml version="1.0" encoding="utf-8" ?> 
 2 <?xml-stylesheet type="text/xsl" href="bookListStyle.xslt"?>
 3 <bookList>
 4   <category type="計算機">
 5     <book id="1">
 6       <title>網頁與Web程序設計</title>
 7       <author>吳利兵</author>
 8       <pubInfo>
 9         <publisher>機械工業出版社</publisher>
10         <pubDate>2009-04-01</pubDate>
11         <price>16.50</price>
12       </pubInfo>
13     </book>
14     <book id="2">
15       <title>軟件工程</title>
16       <author>鄧良松</author>
17       <pubInfo>
18         <publisher>西安電子科技出版社</publisher>
19         <pubDate>2005-06-10</pubDate>
20         <price>33.20</price>
21       </pubInfo>
22     </book>
23   </category>
24   <category type="小說">
25     <book id="3">
26       <title>茶花女</title>
27       <author>小仲馬</author>
28       <pubInfo>
29         <publisher>外語出版社</publisher>
30         <pubDate>2005-06-30</pubDate>
31         <price>22.00</price>
32       </pubInfo>
33     </book>
34     <book id="4">
35       <title>紅樓夢</title>
36       <author>曹雪芹</author>
37       <pubInfo>
38         <publisher>中國教育出版社</publisher>
39         <pubDate>2005-09-06</pubDate>
40         <price>55.00</price>
41       </pubInfo>
42     </book>
43   </category>
44 </bookList>

bookListStyle.xslt文件的內容如下:

<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/">
    <html>
      <head>
        <title>圖書列表</title>
        <style>
          <![CDATA[
            body,td,th{
              font-size:10pt;
              font-family:宋體;
            }
            body{
              background-color:#c0c0c0;
            }
            table{
              border:solid red 1px;
              margin-left:30px;
              margin-right:30px;
              background-color:#ffffc0;
              cellPadding:4;
            }
          ]]>
        </style>
      </head>
      <body>
        <table>
          <caption align="top" style="font-weight:bold; text-align:left">圖書列表</caption>
          <tr style="color:#8b0000" align="left">
            <th width="5%">編號</th>
            <th width="10%">類別</th>
            <th width="25%">書名</th>
            <th width="20%">作者</th>
            <th width="25%">出版社</th>
            <th width="10%">出版日期</th>
            <th width="5%">定價</th>
          </tr>
          <xsl:for-each select="bookList/category/book">
            <xsl:sort select="pubInfo/price" order="descending"/>
            <tr>
              <xsl:attribute name="style">
                color:
                <xsl:if test="../@type[.='計算機']">blue</xsl:if>
              </xsl:attribute>
              <xsl:attribute name="title">
                <xsl:value-of select="title"/>
                <xsl:choose>
                  <xsl:when test="../@type[.='計算機']">
        類別:計算機類圖書
                  </xsl:when>
                  <xsl:otherwise>
        類別:小說類圖書
                  </xsl:otherwise>
                </xsl:choose>
        作者:<xsl:value-of select="author"></xsl:value-of>
                <br/>
        出版社:<xsl:value-of select="pubInfo/publisher"/>
                <br/>
        出版日期:<xsl:value-of select="pubInfo/pubDate"/>
                <br/>
        定價:<xsl:value-of select="pubInfo/price"/>元
              </xsl:attribute>
              <td>
                <xsl:value-of select="@id"/>
              </td>
              <td>
                <xsl:value-of select="../@type"/>
              </td>
              <td>
                <xsl:value-of select="title"/>
              </td>
              <td>
                <xsl:value-of select="author"/>
              </td>
              <td>
                <xsl:value-of select="pubInfo/publisher"/>
              </td>
              <td>
                <xsl:value-of select="pubInfo/pubDate"/>
              </td>
              <td>
                <xsl:value-of select="pubInfo/price"/>
              </td>
            </tr>
          </xsl:for-each>
        </table>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>

這里不再對代碼進行分析,請讀者自己理解這段代碼,并動手寫一下自己的XSLT模板。這段代碼的運行效果如下圖:

XSLT模板如何轉換XML文檔

以上是“XSLT模板如何轉換XML文檔”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

武义县| 中山市| 广宗县| 绥滨县| 申扎县| 察雅县| 桃园市| 信丰县| 方正县| 通渭县| 石城县| 寻甸| 昌乐县| 泸定县| 邯郸县| 丰县| 遂川县| 万山特区| 新田县| 和平县| 察隅县| 景东| 河津市| 肥东县| 花垣县| 镇远县| 武隆县| 万源市| 周至县| 太康县| 常山县| 宁安市| 页游| 布尔津县| 阜城县| 鸡西市| 盐亭县| 穆棱市| 威信县| 利辛县| 华容县|