<x:forEach> 标签用于根据提供的 XPath 表达式遍历 XML 文件的内容。
语法:
<x:forEach[var="varName"]select="XPathExpression">
[varStatus="varStatusName"]
[begin="begin"][end="end"][step="step"]>
body content
</x:forEach>
<x:forEach>标签各属性的详细介绍如表所示。
属性 | 类型 | 描述 | 引用EL |
---|---|---|---|
select | String | XPath表达式,决定查询结果 | 不可以 |
var | String | 循环体的变量 | 不可以 |
begin | int | 循环的起始位置,包括该位置 | 可以 |
end | int | 循环的终止位置,包括该位置 | 可以 |
step | int | 循环的步长 | 可以 |
varStatus | String | 循环的变量状态 | 不可以 |
示例1
遍历 XML 文件 bookInfo.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:forEach select="$bookInfo/books/book"> <p><x:out select="id/@value"/><br> <x:out select="name"/><br> <x:out select="publish/@value"/><br> <x:out select="sellAmount/@value"/></p> </x:forEach>
示例2
遍历 XML 文件 bookInfo.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:forEach select="$bookInfo/books/book" begin="0" end="2"> <p><x:out select="id/@value"/><br> <x:out select="name"/><br> <x:out select="publish/@value"/><br> <x:out select="sellAmount/@value"/></p> </x:forEach>
典型应用
使用 <x:forEach> 标签遍历 book.xml 文件中的所有图书信息。关键代码如下:
<%@page pageEncoding="gbk" contentType="text/html;charset=GBK"%> <%@taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml"%> <%@taglib prefix="c" uri="/WEB-INF/c.tld"%> <c:import url="book.xml" var="xmlFile" charEncoding="gb2312"/> <x:parse var="tushu" doc="${xmlFile}"/> <x:forEach select="$tushu//book"> <p><x:out select="id/@value"/><br> <x:out select="name/@value"/><br> <x:out select="publish/@value"/><br> <x:out select="price/@value"/></p> </x:forEach>
运行结果如下:
9787111379331
C语言开发宝典
机械工业出版社
79.00
9787111378471
Java开发宝典
机械工业出版社
99.00
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/22849.html