程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> JSTL標簽庫:XML標簽庫

JSTL標簽庫:XML標簽庫

日期:2017/1/5 10:09:21      編輯:關於JSP

JSTL提供了操作xml文件的標簽庫,使用xml標簽庫可以省去使用Dom和SAX標簽庫的繁瑣,能輕松的讀取xml文件的內容。

1 XML核心標簽庫

1.<x:parse>標簽

<x:parse/>標簽用來解析指定的xml文件。

【語法1】:

<x:parse doc=”xmlDocument” {var=”name”[scope=”page|request|session|application”]|varDom=”name”[scope=”page|request|session|application”]}

systemId=”systemId” filter=”filter”/>

【語法2】:

<x:parse {var=”name”[scope=”page|request|session|application”]|varDom=”name”[scope=”page|request|session|application”]}

systemId=”systemId” filter=”filter”>

xmlDocument

</x:parse>

<x:parse>標簽屬性說明

屬性名:說明:EL:類型:必須:默認值

doc :指定解析的xml文件:是:String/Reader:是:無

var: 存儲解析後的xml文件:否:String:否:無

scope: 指定var的JSP范圍:否:String:否:page

varDom:以(org.w3c.dom.Doucemet)的形式存儲解析的xml文件:否:String:否:無

scopeDom:指定varDom的JSP范圍:否:String:否:page

systemId:xml文件的url: 是:String: 否:無

filter: 解析xml文件的過濾器:否:Org.xml.sax.Filter:否:無

提示:doc指定解析的xml文件並不是指定xml文件的路徑,而是同<c:import>共同使用,由<c:import>加載並存儲,然後使用<x:parse>解析。

例如:如果解析person.xml文件需要通過如下代碼實現對xml文件的解析。

<c:import var="docString" url="person.xml"/><!--引入person.xml文件-->

<x:parse var="doc" doc="${docString}"/>

<c:import>語句用來導入或存儲文件到JSP。如果不使用var來存儲,xml文件將顯式的出現在JSP文件中。

<x:parse>標簽只用來解析xml文件,並不顯示xml文件中的內容,如果想得到xml的節點元素或值需要使用<x:out>元素來實現。

2.<x:out>標簽

<x:out>標簽主要用來輸出xml的信息。

【語法】:

<x:out select=”XpathExperssion”[excapeXml=”true|false”]>

<x:out>標簽屬性說明

屬性名:說明:EL:類型:必須: 默認值

select: 指定使用的XPath語句:否:String:是:無

escapeXml: 是否轉換特殊字符。如<等:否: boolean:是:true

提示:使用XPath語句需要用到xalan.jar支持包,可以從示例程序的lib中獲取,獲得直接從myEclipse中可以找到。

3.<x:set>標簽

<x:set>標簽用於將從xml文件節點解析的內容存儲到JSP屬性范圍中。

【語法】:

<x:set select=”XPathExperssion” var=”name” scope=”page|request|session|application”>

【參數說明】:

(1)select通過指定的XPath表達式語句獲取節點的值。

(2)var指定用於存儲值的變量名。

(3)指定var的JSP屬性范圍。

2 XML流程控制

使用xml標簽庫的流程控制標簽可以迭代處理xml文件的內容,流程控制可以分為以下兩個方面的內容:

(1)條件判斷。

(2)循環功能。

2.1.<x:if>

<x:if>主要用於條件判斷。

【語法1】:未含有本體內容。

<x:if select=”XPathExperssion” var=”name”[scope=”page|request|session|application”]/>

【語法2】:含有本體內容。

<x:if select=”XPathExperssion” var=”name”[scope=”page|request|session|application”]>

本體內容

</x:if>

語法1只把根據條件表達式得到的結果的存儲在JSP范圍中,語法2根據<x:if>標簽根據條件表達式的結果決定是否執行本體內的代碼。

【參數說明】:

(1)select用來指定使用的XpathExperssion表達式。

(2)var設定標量名用來存儲表達式的結果。

(3)scope指定var存儲的JSP屬性范圍。

2.2.<x:choose>、<x:when>和<x:otherwise>標簽

同核心標簽庫的<c:choose>、<c:when>和<c:otherwise>標簽作用相似,只是使用的條件表達式不同。

<x;choose>是主標簽,<x:when>和<x:otherwise>放在<x:choose>標簽體內共同使用。

【語法】:

<x:choose>

<x:when>

<x:when>

<x:otherwise>

</x:choose>

其中只有<x:when>有屬性。

【語法】:

<x:when select=”XPathExperssion”>

2.3.<x:forEach>標簽

<x;forEach>標簽實現了對xml文檔的遍歷。

【語法】:

<x:forEach select=”XPathExperssion”[var=”name”][varStartus=”StartusName”] [begin=”begin”][end=”end”][step=”step”]>

//標簽主體

</x:forEach>

<x:forEach>標簽屬性說明

屬性名:說明: EL:類型:必須:默認值

select:指定使用的XPath語句:否:String:是:無

var:用於存儲表達式的結果:否:String:否:無

varStatus: 用來存放循環到的變量的相關信息:否:String:否:無

begin:循環的起始位置:是:int:否:無

end:循環的終止位置:是:int:否:無

3 xml的文件轉換

<x:transform>和<x:param>能輕易使用XSLT樣式包裝xml文件,成為另一種顯示方式。

1.<x:transform>標簽

使用該標簽可以輕松的實現xml到XSLT的轉化。

【語法1】:

<x:transform doc=”xmldoc” xslt=”XSLTStytlesheet”[docSystemId=”xmlsystemid”][result=”result”][var=”name”][scope=”scopeName”][xsltSystemId=”xsltsystemid”]/>

【語法2】:

<x:transform doc=”xmldoc” xslt=”XSLTStytlesheet”[docSystemId=”xmlsystemid”][result=”result”][var=”name”][scope=”scopeName”][xsltSystemId=”xsltsystemid”]>

<x:param/>

</x:transform>

【語法3】:

<x:transform doc=”xmldoc” xslt=”XSLTStytlesheet”[docSystemId=”xmlsystemid”][result=”result”][var=”name”][scope=”scopeName”][xsltSystemId=”xsltsystemid”]>

Xml文件內容

<x:param/>

</x:transform>

<x:transform>標簽屬性說明

屬性名:說明:EL:類型:必須:默認值

doc:指定xml文件來源:是:String:是:無

xslt:轉化xml的樣式模板:是:String:是:無

docSystemId:xml文件的URI:是:String:否:無

xsltSystemId:xslt文件的URI:是:String:否:無

result:用來存儲轉換後的結果對象:是:java.xml.transform:是:無

var:以org.w3c.dom.Documet類型存儲轉換後的結果:否:String:否:無

scope:var的屬性范圍:否:String:否:無

2.<x:param>標簽

該標簽用來為<x:transform>標簽轉換參數。

【語法1】:

<x:param name=”name” value=”value”/>

【語法2】:

<x:param name=”name” value=”value”>

Value

</x:param>

【參數說明】:

(1)name指定參數的名稱。

(2)value指定參數值。

作者:csdn博客 跬步小流

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved