HTML網頁基礎語言

Download Report

Transcript HTML網頁基礎語言

第13章 JSP與XML和XSLT





13-1
13-2
13-3
13-4
13-5
XML語法的JSP文件
JAXP的DOM節點介面
JAXP的SAX剖析器
使用XSLT輸出HTML文件
JSTL的XML處理標籤庫
13-1 XML語法的JSP文件


13-1-1 JSP 1.2版的JSP文件
13-1-2 JSP 2.0版的JSP文件
13-1-1 JSP 1.2版的JSP文件-基
礎


在JSP規格書定義兩種JSP程式的寫法,一
為本章之前的JSP程式寫法,也就是使用各
種JSP元素建立JSP程式;另外一種寫法是
使用XML語法,稱為JSP文件(JSP
Document)。
JSP程式在JSP 1.2版開始支援XML語法的
JSP文件(JSP Document),JSP文件是
使用<jsp:root>標籤為根元素的XML文件。
13-1-1 JSP 1.2版的JSP文件-範例
<?xml version="1.0" encoding="Big5"?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
xmlns:c="http://java.sun.com/jstl/core" version="1.2">
<jsp:directive.page contentType="text/html"/>
<html>
<head><title>Ch13_1_1.jsp</title></head>
<jsp:declaration>
int pageCount = 0;
</jsp:declaration>
<body>
<c:set var="message" value="建立JSP文件!"/>
<c:out value="${message}"/><br/>
<jsp:useBean id="today" class="java.util.Date"/>
<c:out value="${today}"/><br/>
<jsp:scriptlet>
int Count = 0;
pageCount++;
Count++;
</jsp:scriptlet>
…………
<script language="JavaScript">
<jsp:text>
<![CDATA[function add(a, b) { return a+b }]]>
</jsp:text>
</script>
</body>
</html>
</jsp:root>
13-1-1 JSP 1.2版的JSP文件-XML
語法的JSP元素

JSP元素對應的XML語法,如下表所示:
JSP 元素
<%! declaration %>
<% scriptlet %>
<%= expression %>
<% @page %>
<% @include %>
JSP 文件(JSP Document)的動作元素
<jsp:declaration>declaration</jsp:declaration>
<jsp:scriptlet>scriptlet</jsp:scriptlet>
<jsp:expression>expression</jsp:expression>
<jsp:directive.page attribute1="value1" …… />
<jsp:directive.include file="path" />
13-1-1 JSP 1.2版的JSP文件<jsp:root>元素
JSP 1.2版的JSP文件(JSP Document)一定
擁有<jsp:root>根元素,用來指出XML文件是
一份JSP程式,<jsp:root>元素擁有xmlns和
version屬性,如下所示:
<jsp:root
xmlns:jsp="http://java.sun.com/JSP/Page"
xmlns:c="http://java.sun.com/jstl/core"
version="1.2">
 上述<jsp:root>元素的xmlns屬性與jsp字首定
義JSP標準動作元素。

13-1-1 JSP 1.2版的JSP文件<jsp:text>元素
<jsp:text>元素沒有任何屬性,可以在JSP文件
插入範本文件,也就是不需要JSP容器處理的文
字內容。<jsp:text>元素通常是用來插入XML元
素的CDATA區塊,這是位在"<![CDATA["字串
和"]]>"字串間的文字內容,如下所示:
<script language="JavaScript">
<jsp:text>
<![CDATA[function add(a, b) {return
a+b}]]>
</jsp:text>
</script>

13-1-2 JSP 2.0版的JSP文件-說明
JSP 2.0版JSP文件的預設副檔名為.jspx,不同
於1.2版,JSP文件並沒有限制一定需要使用
<jsp:root>根元素,換句話說,我們可以將JSP
文件建立成一份XHTML文件,如下所示:
<html
xmlns="http://www.w3c.org/1999/xhtml"
xmlns:jsp="http://java.sun.com/JSP/Page"
xmlns:c="http://java.sun.com/jsp/jstl/core"
>

13-1-2 JSP 2.0版的JSP文件<jsp:output>元素
<jsp:output>元素可以控制JSP文件是否和如何
產生XML文件與DTD宣告,如果不需要JSP容器產
生XML文件宣告,就可以在JSP文件使用
<jsp:output>元素進行控制,如下所示:
<jsp:output omit-xml-declaration="true" />
 <jsp:output>元素還可以告訴JSP容器如何產生
DTD宣告,如下所示:

<jsp:output doctype-root-element="html“
doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN“
doctype-system=
"http://www.w3c.org/TR/xhtml1/DTD/xhtml1transitional.dtd"/>
13-1-2 JSP 2.0版的JSP文件<jsp:element>元素
<jsp:element>元素可以定義XML元素的標籤,
name屬性是XML元素的標籤名稱。JSP 2.0新增
<jsp:element>、<jsp:attribute>和
<jsp:body>元素主要是用來建立XML元素、內
容和屬性,如下所示:
<jsp:element name="code">
<jsp:attribute name="isbn">
957-717-908-8
</jsp:attribute>
<jsp:body>F8920</jsp:body>
</jsp:element>

13-1-2 JSP 2.0版的JSP文件<jsp:attribute>元素
<jsp:attribute>元素如果在
<jsp:element>元素之中,就是定義XML
元素的屬性清單,在<jsp:attribute>元素
擁有2個屬性name和trim,如下所示:
<jsp:attribute name="att_name"
trim="true | false">
Body
</jsp:attribute>

13-1-2 JSP 2.0版的JSP文件<jsp:body>元素
<jsp:body>元素是定義XML元素的內容,
如下所示:
<jsp:body>
Body
</jsp:body>

13-2 JAXP的DOM節點介面



13-2-1 JAXP API的基礎
13-2-2 存取樹狀結構的XML元素和屬性
13-2-3 存取指定的XML元素和屬性
13-2-1 JAXP API的基礎-說明


JAXP API(Java API for XML
Processing)提供類別和方法,可以讓
Java應用程式使用DOM或SAX剖析或轉換
XML文件,在JDK 5.0版已經包含JAXP
API 1.3版。
JAXP API 1.3版支援XML建議規格DOM
Level 3、XSLT 1.0和SAX 2.02。
13-2-1 JAXP API的基礎-JAXP API
套件

JAXP API剖析和物件模型的相關套件說明,
如下表所示:
套件
說明
javax.xml.parsers
處理 XML 文件的類別
javax.xml.transform
處理 XSLT 轉換的類別
org.xml.sax
SAX 剖析器,使用事件驅動方式來剖析 XML 文件
的 API
org.xml.sax.helpers 剖析錯誤處理的相關類別,可以幫助程式設計者使
用 SAX API
org.w3c.dom
支援 XML DOM 相關介面物件的套件
13-2-1 JAXP API的基礎-DOM介面
物件

JSP程式在使用JAXP載入XML文件後,就可以使
用org.w3c.dom提供的「介面」(Interface)
物件處理XML文件的元素和屬性,將XML文件內
容視為一個樹狀結構的節點,其主要的介面物件,
如下表所示:
DOM 介面物件
說明
Document
表示整份 XML 文件的樹狀結構
Node
節點物件
NodeList
節點清單的集合物件,這是指定節點所有子節點的樹狀
結構
Element
XML 元素物件,也就是元素節點
Text
XML 元素內容物件,也就是內容節點
13-2-1 JAXP API的基礎-DOM節點
的樹狀結構

XML剖析器在載入XML文件後,DOM是將
XML文件的元素視為樹狀結構的節點,常
見的節點種類,如下表所示:
節點類型
NODE_DOCUMENT_TYPE
NODE_PROCESSING_INST
RUCTION
NODE_ELEMENT
NODE_ATTRIBUTE
NODE_TEXT
說明
<!DOCTYPE node SYSTEM "book.dtd">
<?xml version="1.0"?>
<code>F8920</code>
sales="N"
F8920
13-2-1 JAXP API的基礎-在JSP程式
載入XML文件1

在JSP程式載入XML文件檔案需要匯入套件,如
下所示:
<%@
<%@
<%@
<%@

page
page
page
page
import="javax.xml.parsers.*"%>
import="org.xml.sax.*"%>
import="java.io.*"%>
import="org.w3c.dom.*"%>
JSP程式可以建立DocumentBuilderFactory物
件設定剖析器的相關參數,如下所示:
DocumentBuilderFactory dbf =
DocumentBuilderFactory.newInstance();
dbf.setIgnoringComments(true);
dbf.setIgnoringElementContentWhitespace(true);
13-2-1 JAXP API的基礎-在JSP程式
載入XML文件2

在設定剖析器的相關參數後,就可以建立
DocumentBuilder物件來剖析XML文件,
如下所示:
DocumentBuilder db =
dbf.newDocumentBuilder();
Document document = db.parse(
new File(path));

上述程式碼使用DocumentBuilder物件的
parse()方法來剖析File物件的XML文件。
13-2-2 存取樹狀結構的XML元素和
屬性-Document文件物件
XML文件建立的整棵樹狀結構是Document物件,
當DOM載入XML文件建立document物件後,就
可以使用getDocumentElement()方法取得
XML文件的根節點,如下所示:
Node root =
document.getDocumentElement();
 在Document物件提供方法能夠直接使用標籤名
稱取得子節點,如下所示:
NodeList nodes;
nodes =
document.getElementsByTagName("book");

13-2-2 存取樹狀結構的XML元素和
屬性-NodeList節點清單的集合物件
Document物件使用getChildNodes()和
getElementByTagName()方法可以取得指定節
點的所有子節點物件的NodeList集合物件。
 NodeList集合物件可以使用item(i)方法來取得
指定索引值的子節點。例如:取出根節點下一層
的所有子節點,如下所示:
for ( int i=0; i < nodes.getLength(); i++ ) {
name = nodes.item(i).getNodeName();
out.print("元素: " + name + "<br>");
………
}

13-2-2 存取樹狀結構的XML元素和
屬性-Node節點物件(說明)
從NodeList集合物件取出的節點和
getDocumentElement()方法取得根節點的
Node節點物件,如下所示:
Node root =
document.getDocumentElement();
String name = root.getNodeName();
out.print(
"<b>根元素:</b>"+name+"<br>");
 因為根節點擁有多個子節點,可以取得NodeList
集合物件,如下所示:
NodeList nodes = root.getChildNodes();

13-2-2 存取樹狀結構的XML元素和
屬性-Node節點物件(方法)

根節點本身和子節點都是Node節點物件,
其相關方法如下表所示:
方法
說明
NodeList getChildNodes() 取得子節點的 NodeList 集合物件,也就是子節
點樹
String getNodeName()
節點名稱,依不同的節點種類而不同
short getNodeType()
節點種類的代碼
String getNodeValue()
節點值
boolean hasChildNodes()
檢查是否擁有子節點,傳回值 true 為有
13-2-2 存取樹狀結構的XML元素和
屬性-Node節點物件(節點種類)
getNodeType()
getNodeName()
Node 種類
2
Attr 屬性
屬性名稱
4
CDATASection
#cdata-section
8
#comment
Comment 註解
9
#document
Document 文件
11
DocumentFragme
#documentnt
fragment
10
<!DOCTYPE>
null
1
Element
標籤名稱
3
Text
#text
5
EntityReference 實體參考名稱
6
Entity
實體名稱
7
PI
target
12
Notation
Notation 名稱
getNodeValue()
屬性值
CDATA 值
註解文字內容
null
null
null
null
getAttributes()
null
null
null
null
null
null
NamedNodeMap
null
文字內容
null
null
null
null
null
不包含 target 的
內容
null
null
13-2-2 存取樹狀結構的XML元素和
屬性-Element元素物件
Element物件代表樹狀結構的XML元素節點,如
果XML元素擁有內容,文字內容就是Text節點,
Element物件的getTagName()方法可以取得標
籤名稱,如下所示:
NodeList nodes =
document.getElementsByTagName("book");
out.print(nodes.item(i).getTagName());
 在取得book節點後使用getTagName()方法取得
節點名稱,Element物件提供getAttribute()方
法取得XML元素的屬性,如下所示:
nodes.item(i).getAttribute("sales")

13-2-2 存取樹狀結構的XML元素和
屬性-Text內容節點物件

Text物件是XML元素的文字內容。
13-2-2 存取樹狀結構的XML元素和
屬性-NamedNodeMap屬性集合物件
NamedNodeMap集合物件可以取得元素的屬性
清單,因為一個XML元素可能擁有多個屬性,如
下所示:
NamedNodeMap atts =
nodes.item(i).getAttributes();
for ( int j = 0; j < atts.getLength(); j++ ) {
Node att = atts.item(j);
out.print(" +--" + att.getNodeName());
out.println("/" +
att.getNodeValue()+"<br>");
}

13-2-3 存取指定的XML元素和屬性說明
在JSP程式如果需要存取指定元素或屬性,可以
使用Document物件的
getElementsByTagName()方法指定取得的
XML元素,如下所示:
NodeList codes =
document.getElementsByTagName("code");
out.print(codes.item(1).getNodeName());
 上述程式碼取得code標籤的NodeList集合物件,
item()方法取出第2個code標籤,也就是第2個
book元素的code子元素。

13-2-3 存取指定的XML元素和屬性Node節點物件的瀏覽方法(說明)

在Node節點物件可以重複使用
getChildNodes()方法,在樹狀結構的節
點取得指定的子節點,如下所示:
out.print(root.getChildNodes().item(2).
getChildNodes().item(1).getNodeName());

上述程式碼取得根節點root物件後,使用
getChildNodes()方法取得下一層第3個節
點的第2個子節點,也就是第3個book元素
的第2個子元素author。
13-2-3 存取指定的XML元素和屬性Node節點物件的瀏覽方法(方法)

在Node節點物件提供多種方法,可以取得
指定的節點物件,如下表所示:
方法
Node getFirstChild()
Node getLastChild()
Node getNextSibling()
Node getParentNode()
說明
取得第 1 個子節點
取得最後 1 個子節點
取得下一個兄弟節點,如果 2 個節點擁有相
同的父節點稱為兄弟節點
取得父節點
13-3 JAXP的SAX剖析器


13-3-1 SAX 2的基礎
13-3-2 使用JAXP的SAX剖析器
13-3-1 SAX 2的基礎



XML文件是階層架構的樹狀結構,除了使用DOM
物件和方法存取XML元素外,我們還可以使用
「SAX」(Simple API for XML)剖析XML文
件。
SAX 2是Simple API for XML version 2,也
就是SAX版本2,JAXP 1.3版支援SAX 2.02版。
SAX是一組程式介面,可以將XML文件視為文字
串流的資料,在讀取XML元素時觸發一系列事件,
只需撰寫所需的事件處理程序,就可以分析或取
得XML元素。
SAX技術是一種開放標準,提供Java的程式設計
介面,不同於DOM已經是W3C建議規格,少了
官方色彩的SAX是由XML-DEV電子報的一組開發
人員進行規格的開發。
13-3-2 使用JAXP的SAX剖析器介面說明

JAXP API 1.3版支援SAX 2.02,其相關
介面說明,如下表所示:
SAX 2 介面
org.xml.sax.XMLReader
org.xml.sax.ContentHandler
org.xml.sax.ErrorHandler
org.xml.sax.DTDhandler
org.xml.sax.EntityResolver
org.xml.sax.helpers.DefaultHandler
說明
讀取 XML 文件的介面
接收讀取文件產生事件的介面
SAX 的錯誤處理介面
接收 DTD 相關事件的介面
處理實體的介面
預設實作 ContentHandler、
ErrorHandler、DTDHandler 和
EntityResolver 四個介面的類別
13-3-2 使用JAXP的SAX剖析器-架
構
public class TagCounter extends DefaultHandler {
…………
// XML文件的開始
public void startDocument() throws SAXException { }
// 元素的開始
public void startElement(String namespaceURI,
String localName, String qName, Attributes atts)
throws SAXException { }
// 元素的內容
public void characters(String chars)
throws SAXException { }
// 元素的結束
public void endElement(String namespaceURI, String
localName ,String qName) throws SAXException { }
// 文件結束
public void endDocument() throws SAXException { }
}
13-3-2 使用JAXP的SAX剖析器方法說明

類別已經實作ContentHandler介面,只需覆寫
相關方法就可以處理ConentHandler接收讀取
XML文件的事件,相關方法的說明,如下表所示:
方法
startDocument()
startElement()
characters()
endElement()
endDocument()
說明
開始剖析 XML 文件時觸發此事件方法
當剖析到每一個 XML 元素時,處理開始標籤名稱和
屬性清單的方法
可以取得 XML 元素內容的文字資料
處理 XML 元素的結尾標籤名稱
當 SAX 剖析器處理到 XML 文件的最後就觸發此事
件方法
13-4 使用XSLT輸出HTML文件

若XML文件可以在JSP程式直接使用XSLT Script
將XML文件輸出成HTML文件。在JSP程式是建立
TransformerFactory物件tf和Transformer物件
t,如下所示:
TransformerFactory
tf=TransformerFactory.newInstance();
Transformer t = tf.newTransformer(new
StreamSource(f));

接著使用transform()方法將XML文件使用XSLT
Script執行轉換,如下所示:
t.transform(
new StreamSource(new
StringReader(sb.toString())),
new StreamResult(response.getWriter())
);
13-5 JSTL的XML處理標籤庫




13-5-1
13-5-2
13-5-3
13-5-4
XPath的基礎
XML剖析與一般處理標籤
條件與迴圈標籤
XSLT轉換標籤
13-5 JSTL的XML處理標籤庫

JSTL的XML處理標籤庫提供XML剖析、取
出元素與屬性和XSLT轉換等相關標籤,在
JSP程式請先使用taglib指引元素匯入XML
處理標籤庫的URI,如下所示:
<%@ taglib
uri="http://java.sun.com/jsp/jstl/xml"
prefix="x" %>
13-5-1 XPath的基礎-說明
XPath(XML Path Language)是一種標
示節點位置的語言,可以用來描述XML元
素的位置,如同硬碟資料夾的檔案路徑,
如下所示:
C:\Inetput\wwwroot\Ch13\book.xml
 上述路徑指出檔案book.xml的位置,
XPath指令可以指出XML元素在XML文件
中的位置,也就是樹狀結構節點的位置。
在JSTL的XML處理標籤庫是使用XPath語
言來存取XML元素。

13-5-1 XPath的基礎-位置路徑

XPath語言主要描述節點相對其它節點的位置,
稱為「位置路徑」(Location Path),位置路
徑的運算子,如下表所示:
運算子
/
//
.
..
*
@
[]
|
說明
子元素路徑運算子,指出元素和子元素的節點
遞迴下層路徑運算子,指出所有在節點下層的符合節點,不
只是子節點,可以是下下層的孫節點
目前節點
父節點
萬用字元,代表目前元素的所有子節點和屬性
元素屬性
指出節點的索引,內容為指定的屬性或節點,也可以加上條
件指令
組合多個位置路徑,每個位置路徑使用此運算子分隔
13-5-1 XPath的基礎-範例
XPath 範例
/
/book/item/code
//code
/book/item//code
/book/item/*
/*/*/*/title
//*
/book/item/title@isbn
/book/item/title[1]
/book/item/title[3]
/book/item/title[@isbn]
說明
XML 文件的根節點
從根節點開始一路從 book 節點到 item 節點下
的 code 節點
根節點下所有 code 節點,在 XML 文件只要有
code 節點都符合
所有 item 子節點下的 code 節點
選擇/book/item 下的所有節點
選擇所有前面有三層的 title 節點
選擇所有節點
從根節點開始,一層一層向下找尋子節點 title,
找到後傳回 ibn 屬性的值
選擇 item 子節點的第 1 個 title 節點
選擇 item 子節點的第 3 個 title 節點
選擇 item 節點擁有屬性 isbn 的所有 title 節點
13-5-2 XML剖析與一般處理標籤<x:parse>標籤(語法)
<x:parse>標籤可以執行XML文件剖析,以便使
用XPath或XML DOM取出XML節點或屬性值,
其基本語法如下所示:
<x:parse xml="運算式" var="name"/>
 或
<x:parse var="name"/>
Body
</x:parse>
 上述標籤可以執行xml屬性的XML文件字串(或
標籤內的XML文件)剖析,並將剖析結果儲存在
var屬性的變數。

13-5-2 XML剖析與一般處理標籤<x:parse>標籤(範例)
<x:parse>標籤的使用上可以配合
<c:import>標籤插入XML文件,如下所
示:
<c:import var="doc" url="test.xml"/>
<x:parse xml="${doc}" var="xml"/>
 上述<c:import>標籤插入test.xml的
XML文件(請注意!XML文件並沒有宣告
部分),將文件內容儲存到doc變數,然後
就可以使用<x:parse>標籤剖析XML文件
內容。

13-5-2 XML剖析與一般處理標籤<x:out>標籤(語法)
<x:out>標籤可以使用XPath語言在剖析的XML
文件中取出和顯示指定的XML節點,其基本語法
如下所示:
<x:out select="XPath運算式"/>
 上述標籤使用select屬性的XPath運算式來取出
指定的XML節點,XPath運算式的格式,如下所
示:
$xml/books/book[1]/code
 上述運算式是以"$"符號開始的字串,之後的xml
是儲存剖析結果的變數,然後是XPath路徑字串。

13-5-2 XML剖析與一般處理標籤<x:out>標籤(範例)
<x:out>標籤就是使用XPath語言的運算
式來取出指定的XML節點,如下所示:
<x:out select="$xml/books"/>
 上述<x:out>標籤的select屬性是以"$"符
號開始的字串,xml變數是儲存前述剖析
XML文件的內容,books是根節點,以此
例是顯示其下所有XML節點的內容,即3個
book節點內容。

13-5-2 XML剖析與一般處理標籤<x:set>標籤(語法)
<x:set>標籤使用XPath語言在剖析的
XML文件中取出部分XML節點的子樹,將
它儲存到其它變數,其基本語法如下所示:
<x:set var="name"
select="XPath運算式"/>
 上述標籤使用select屬性的XPath運算式取
出部分XML節點的子樹,然後將此子樹儲
存到var屬性的變數。

13-5-2 XML剖析與一般處理標籤<x:set>標籤(範例)
<x:set>標籤是使用XPath語言的運算式取出
XML文件的部分內容,以便進一步使用<x:out>
標籤進行處理,如下所示:
<x:set var="part"
select="$xml/books/book[3]"/>
 上述<x:set>標籤取出第3個book節點,然後就
可以進一步使用<x:out>標籤取出其子節點,如
下所示:
<x:out select="$part/code"/><br>
<x:out select="$part/title"/><br>

13-5-3 條件與迴圈標籤-<x:if>標籤
<x:if>標籤類似<c:if>標籤,只是改為使用XPath
運算式進行條件判斷,其基本語法如下所示:
<x:if select="XPath條件運算式">
Body
</x:if>
 <x:if>標籤是使用XPath條件運算式進行判斷,如
下所示:
<x:if
select="$xml/books/book[1]/code='F8920'"
>
XML文件擁有書號: F8920<br>
</x:if>

13-5-3 條件與迴圈標籤-<x:choose>、
<x:when>和<x:otherwise>標籤(語法)
<x:choose>、<x:when>和<x:otherwise>標籤是使
用XPath條件運算式進行多條件判斷,其基本語法如下所
示:
<x:choose>
<x:when select="XPath條件運算式">
Body
</x:when>
<x:when select="XPath條件運算式">
Body
</x:when>
<x:otherwise>
Body
</x:otherwise>
</x:choose>

13-5-3 條件與迴圈標籤-<x:choose>、
<x:when>和<x:otherwise>標籤(範例)
<x:set var="part" select="$xml/books/book[1]"/>
<x:choose>
<x:when select="$part/@sales='Y'">
圖書仍在銷售中<br>
</x:when>
<x:when select="$part/@sales='N'">
圖書目前缺貨中<br>
</x:when>
<x:otherwise>
圖書銷售狀況不明<br>
</x:otherwise>
</x:choose>
13-5-3 條件與迴圈標籤<x:forEach>標籤(語法)

<x:forEach>標籤類似<c:forEach>標籤,
只是改為使用XPath運算式取出多個同名的
XML節點,以便使用迴圈一一取出每一個
節點來進行處理,其基本語法如下所示:
<x:forEach var="name"
select="XPath運算式">
Body
</x:forEach>
13-5-3 條件與迴圈標籤<x:forEach>標籤(範例)
<x:forEach>標籤是使用XPath運算式來取出
XML節點集合,如下所示:
<x:forEach var="item"
select="$xml/books/book">
<x:out select="."/><br>
</x:forEach>
 上述<x:forEach>標籤取出所有book節點,然
後使用<x:out>標籤顯示目前的節點內容,"."表
示目前節點。

13-5-4 XSLT轉換標籤-語法
<x:transform>標籤可以使用XSLT Script執行
XML文件轉換,內含<x:param>子標籤可以設
定XSLT參數,其基本語法如下所示:
<x:transform xml="運算式" xslt="運算式"
var="name" scope="scope">
<x:param name="name1"
value="value1"/>
…………
<x:param name="nameN“
value="valueN"/>
</x:transform>

13-5-4 XSLT轉換標籤-範例
<x:transforml>標籤只需配合<c:import>標
籤就可以插入XML文件和XSLT Script檔案來執
行轉換,如下所示:
<c:import var="doc" url="test.xml"/>
<c:import var="xslt" url="test.xslt"/>
<x:transform xml="${doc}"
xslt="${xslt}"/>
 上述<c:import>標籤分別插入XML文件
test.htm和XSLT Scirpt檔案test.xslt,然後使
用<x:transform>標籤執行XSLT轉換。
