<x:out> 태그는 XPath 표현식의 평가 결과를 화면에 출력하는 JSTL XML 태그입니다. JSP 스크립틀릿 문법인 <%= %>와 동일한 역할을 수행한다고 생각하면 이해하기 쉽습니다.
x:out 태그의 주요 속성
<x:out> 태그는 다음과 같은 속성을 제공합니다.
| 속성 | 설명 | 필수 여부 | 기본값 |
|---|---|---|---|
| select | 문자열로 평가할 XPath 표현식이며, 주로 XPath 변수를 함께 사용합니다. | 예 | 없음 |
| escapeXml | true로 설정하면 특수 XML 문자(<, >, & 등)를 이스케이프 처리합니다. | 아니요 | true |
예제
이번에는 <x:parse> 태그로 XML 문서를 파싱한 뒤, <x:out> 태그로 원하는 노드의 값을 추출하여 출력하는 예제를 살펴보겠습니다.
<c:set> 태그로 XML 문자열을 변수에 담고, <x:parse> 태그가 이를 파싱하여 output 변수에 저장합니다. 이후 XPath 표현식에서 해당 변수를 참조해 도서 정보를 조회합니다. 참고로 XPath에서 노드 인덱스는 0이 아닌 1부터 시작한다는 점에 유의하세요.
<%@ taglib prefix = "c" uri = "https://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix = "x" uri = "https://java.sun.com/jsp/jstl/xml" %>
<html>
<head>
<title>JSTL x:out Tags</title>
</head>
<body>
<h3>Books Info:</h3>
<c:set var = "xmltext">
<books>
<book>
<name>Padam History</name>
<author>ZARA</author>
<price>100</price>
</book>
<book>
<name>Great Mistry</name>
<author>NUHA</author>
<price>2000</price>
</book>
</books>
</c:set>
<x:parse xml = "${xmltext}" var = "output"/>
<b>The title of the first book is</b>:
<x:out select = "$output/books/book[1]/name" />
<br>
<b>The price of the second book</b>:
<x:out select = "$output/books/book[2]/price" />
</body>
</html>
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Books Info: The title of the first book is: Padam History The price of the second book: 2000
이처럼 <x:parse>와 <x:out> 태그를 조합하면 JSP 페이지에서 별도의 자바 코드 없이 XML 데이터를 간편하게 파싱하고 원하는 값을 손쉽게 추출하여 출력할 수 있습니다.