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
Comments