首页 > 编程笔记 > Java笔记

JSP JSTL <x:forEach>标签:遍历XML文件

<x:forEach> 标签用于根据提供的 XPath 表达式遍历 XML 文件的内容。

语法:

<x:forEach[var="varName"]select="XPathExpression">
  [varStatus="varStatusName"]
  [begin="begin"][end="end"][step="step"]>
  body content
</x:forEach>


<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

所有教程

优秀文章