JSP JSTL <x:parse>標籤:解析指定的XML內容

2020-07-16 10:04:56
<x:parse> 標籤可以解析指定的 XML 內容。

語法:

<x:parse{doc="XMLDocument"|xml1="XMLDocument"}
             {var="var"[scope="scope"]|varDom="var"[scopeDom="scope"]}
             [systemId="systemId"]
             [filter="filter"]/>
<x:parse
         {var="var"[scope="scope"]|varDom="var"[scopeDom="scope"]}
         [systemId="systemId"]
         [filter="filter"]>
  XML Document to parse
</x:parse>


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

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

<x:parse>標籤屬性
屬性 型別 描述 參照 EL
doc String/Reader 提供解析的XML檔案 可以
xml String 同doc屬性相同,已不再使用 可以
var String 儲存解析後的XML 不可以
varDom String 以org.w3c.dom.Document型別儲存解析後的XML檔案 不可以
scope String var屬性的儲存範圍 不可以
scopeDom String varDom屬性的儲存範圍 不可以
systemId String XML檔案中的URI資訊,用於解析XML檔案的路徑 可以
filter org.xml.sax.XMLFilter 解析XML檔案使用的過濾器 可以

範例

首先通過 <c:import> 標籤匯入 bookInfo.xml 檔案,然後通過 <x:parse> 標籤解析 bookInfo.xml 檔案的內容,最後通過 <x:out> 標籤輸出 XML 檔案中的部分內容,關鍵程式碼如下:
<%@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:out select="$bookInfo/books/book/id/@value"/><br>
    書名:<x:out select="$bookInfo/books/book/name/@value"/><br>
    出版社:<x:out select="$bookInfo/books/book/publish/@value"/>
bookInfo.xml 檔案的內容如下:
<?xml version="1.0" encoding="gbk"?>
<books>
  <book>
    <id value="1"/>
    <name value="Java開發寶典"/>
    <author value="C語言中文網"/>
    <publish value="機械工業出版社"/>
  </book>
</books>
執行結果如下:
編號:1
書名:Java開發寶典
作者:C語言中文網
出版社:機械工業出版社