日期:2014-05-16 浏览次数:20358 次
?
JSTL的XML处理标签库提供XML剖析、取出元素与属性和XSLT转换等相关标签,在JSP程式请先使用taglib指引元素汇入XML处理标签库
?
的URI,如下所示:
<%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x" %>
XPath的基础-说明
nXPath(XML Path Language)是一种标示节点位置的语言,可以用来描述XML元素的位置,如同硬碟资料夹的档案路径,如
?
下所示:
C:\Inetput\wwwroot\Ch13\book.xml
n上述路径指出档案book.xml的位置,XPath指令可以指出XML元素在XML文件中的位置,也就是树状结构节点的位置。在JSTL的XML处
?
理标签库是使用XPath语言来存取XML元素。
n13-5-1 XPath的基础-位置路径
nXPath语言主要描述节点相对其它节点的位置,称为「位置路径」(Location Path),位置路径的运算子,如下表所示:
?
?XPath的基础-范例
?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文件内容。
?
?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节点内容。
?
XML剖析与一般处理标签- <x:set>标签(语法)
?
<x:set>标签使用XPath语言在剖析的XML文件中取出部分XML节点的子树,将它储存到其它变数,其基本语法如下所示:
<x:set var="name"
? ? ? ? ? ?select="XPath运算式"/>
上述标签使用select属性的XPath运算式取出部分XML节点的子树,然后将此子树储存到var属性的变数。
?
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>
?
?条件与回圈标签-<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>
?
条件与回圈标签-<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>
?
?
<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&g