JSP JSTL <x:set>標籤:儲存XML節點

2020-07-16 10:04:56
<x:set> 標籤用於把從 XML 檔案指定節點讀取的屬性值儲存到指定範圍的變數中。

語法:

<x:set select="XPathExpression"
       var="varName"[scope="{page|request|session|application}"]/>
<x:set select="XPathExpression"
       var="varName"[scope="{page|request|session|application}"]>
</x:set>


說明:<x:out> 標籤有兩種語法格式,這兩種語法格式的輸出結果完全相同。

<x:set> 標籤各屬性的詳細介紹如表所示。

<x:set> 標籤屬性
屬性 型別 描述 參照 EL
select String XPath語句的表示式 不可以
var String 將讀取的XML資訊儲存值變數中 不可以
scope String var屬性的儲存範圍 不可以

範例

首先通過 <c:import> 標籤匯入 bookInfo.xml 檔案,然後通過 <x:parse> 標籤解析 bookInfo.xml 檔案的內容,再通過 <x:set> 標籤獲取每本圖書資訊,並儲存到變數 book 中,最後通過 <x:out> 標籤輸出包括書名、出版社和單價的圖書資訊。
<%@taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml"%>
  <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
    <c:import url="bookInfo.xml" var="xmlFile" charEncoding="gbk"/>
    <x:parse var="bookInfo" doc="${xmlFile}"></x:parse>
    <x:set var="book" select="$bookInfo/books/book"/>
    書名:<x:out select="$book/name" escapeXml="true"/><br>
    出版社:<x:out select="$book/publish/@value"/><br>
    單價:<x:out select="$book/price/@value"/>