JSTL XML Tag x:set Example
- Details
- Written by Nam Ha Minh
- Last Updated on 01 September 2019   |   Print Email
This post helps you understand how to use the <x:set> tag in the JSTL XML tags library with code example.
In JSTL, the <x:set> tag is used to save the result of XPath expression into a scoped variable. The type of the result depends on the type of the result of XPath expression. If the result of the XPath expression is boolean, the result will be saved as a java.lang.Boolean, for result of string the result will be saved as java.lang.String and so on.
JSTL <x:set> Syntax:
<x:set var="<string>" select="<string>" scope="<string>"/>
Attributes:
Name | Required | Description |
var | True | Name of the variable to save the result of the XPath expression. The type of this variable depends on the type of the result after the XPath expression is evaluated. |
select | False | XPath expression to be evaluated. |
scope | False | Scope of the var to store into. |
JSTL <x:set> Example:
The following JSP example saves the XPath expression result into variables and displays them using <c:out> tag.
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title><x:set> Demo</title>
</head>
<body>
<h1><x:set> Demo</h1>
<c:import
url="http://localhost:8080/JSTL-Tag-Reference/tag-types/xml/citizens.xml"
var="citizenXML"/>
<x:parse var="doc" xml="${citizenXML}" />
<x:set var="citizen1firstname" select="$doc/citizens/citizen[1]/firstname/text()"/>
<c:out value="${citizen1firstname}"/>
<x:set var="citizen1lastname" select="$doc/citizens/citizen[1]/lastname/text()"/>
<c:out value="${citizen1lastname}"/>
</body>
</html>
XML Document (given for reference)
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<citizens>
<citizen>
<ssn>Z345T</ssn>
<firstname>Cheryl</firstname>
<lastname>Johnson</lastname>
<role>Manager</role>
<salary>12000</salary>
</citizen>
<citizen>
<ssn>Z446T</ssn>
<firstname>John</firstname>
<lastname>Smith</lastname>
<role>Employee</role>
<salary>1000</salary>
</citizen>
<citizen>
<ssn>Z335T</ssn>
<firstname>Justin</firstname>
<lastname>Claire</lastname>
<role>Senior Manager</role>
<salary>14000</salary>
</citizen>
<citizen>
<ssn>Z389T</ssn>
<firstname>Clark</firstname>
<lastname>Rick</lastname>
<role>Employee</role>
<salary>2000</salary>
</citizen>
</citizens>
Output:

Recommended Usage of <x:set> tag:
Using <x:set>, we can conveniently store the result of the XPath expression into a scoped variable for later use.
Other JSTL XML Tags:
forEach | if | out | param | parse | transform | choose, when, otherwise
About the Author:
Nam Ha Minh is certified Java programmer (SCJP and SCWCD). He began programming with Java back in the days of Java 1.4 and has been passionate about it ever since. You can connect with him on Facebook and watch his Java videos on YouTube.
Comments