JSTL XML <x:forEach> Tag


The <x:forEach> tag is used to loop over nodes in an XML document.


The <x:forEach> tag has following attributes:

AttributeDescription RequiredDefault
selectThe XPath expression to be evaluatedYesNone
varName of the variable to store the current item for each loopNoNone
beginThe start index for the iterationNoNone
endThe end index for the iterationNoNone
stepThe size of the index increment while iterating over the collectionNoNone
varStatusThe name of the variable in which the status of the iteration is storedNoNone


<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %>

  <title>JSTL x:if Tags</title>
<h3>Books Info:</h3>

<c:set var="xmltext">
      <name>Padam History</name>
      <name>Great Mistry</name>

<x:parse xml="${xmltext}" var="output"/>
<ul class="list">
<x:forEach select="$output/books/book/name" var="item">
   <li>Book Name: <x:out select="$item" /></li>


This would produce following result:

Books Info:

  • Book Name: Padam History

  • Book Name: Great Mistry