首页 > 编程笔记 > Java笔记 阅读:92

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

爱面试的程序媛,一个分享面试经验的公众号。跟着站长一起学习,每天都有进步。

通俗易懂,深入浅出,定时分享程序员面试的那点事。

面试如何造火箭?工作如何拧螺丝?都在这个公号哦。

扫描二维码关注公众号,免费领取价值 1000 元的求职面试资料(限时免费)!

当你决定关注「爱面试的程序媛」,你已然超越了90%的程序员!

爱面试的程序媛二维码
微信扫描二维码关注

所有教程

优秀文章