jstl <x:transform>標籤

2019-10-16 22:12:42

<x:transform>標籤對XML文件應用XSL轉換。

屬性

<x:transform>標籤具有以下屬性 -

屬性 描述 必需 預設
doc 源XML文件的XSLT轉換 主體
docSystemId 原始XML文件的URI
xslt XSLT樣式表提供轉換指令
xsltSystemId 原始XSLT文件的URI
result 結果物件接受轉換的結果 列印到頁面
var 設定為轉換的XML文件的變數 列印到頁面
scope 變數的範圍來揭示轉換的結果

範例

假設有以下XSLT樣式表檔案:style.xsl -

<?xml version = "1.0"?>
<xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" 
   version = "1.0">

<xsl:output method = "html" indent = "yes"/>
   <xsl:template match = "/">
      <html>
         <body>
            <xsl:apply-templates/>
         </body>
      </html>
   </xsl:template>

   <xsl:template match = "books">
      <table border = "1" width = "100%">
         <xsl:for-each select = "book">
            <tr>
               <td>
                  <i><xsl:value-of select = "name"/></i>
               </td>

               <td>
                  <xsl:value-of select = "author"/>
               </td>

               <td>
                  <xsl:value-of select = "price"/>
               </td>
            </tr>
         </xsl:for-each>
      </table>
   </xsl:template>

</xsl:stylesheet>

以下範例將顯示如何使用<x:transform>標籤,編寫一個JSP檔案:xml_transform.jsp 如下所示:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>jstl xml:transform 標籤範例</title>
</head>
<body>
    <div style="margin: auto; width: 90%">
        <h3>圖書資訊:</h3>

        <c:set var="xmltext">
        <books>  
            <book>  
              <name>Three mistakes of my life</name>  
              <author>Newsu</author>  
              <price>20</price>  
            </book>  
            <book>  
              <name>Tomorrow land</name>  
              <author>Bird</author>  
              <price>190</price>  
            </book>  
            </books> 
        </c:set>

      <c:import url = "http://localhost:8080/jstl/style.xsl" var = "xslt"/>
      <x:transform xml = "${xmltext}" xslt = "${xslt}"/>    </div>
</body>
</html>

執行上述專案程式碼,得到以下結果如下 -