JSP XML 데이터 처리


HTTP를 통해 XML 데이터를 보낼 때 RSS 문서와 같은 들어오고 나가는 XML 문서를 처리하려면 JSP를 사용해야 합니다. XML 문서로서 JSP를 사용하여 XML 문서를 만드는 것은 HTML 문서를 만드는 것보다 어렵지 않습니다.


JSP를 사용하여 XML 보내기

JSP를 사용하여 XML 콘텐츠를 보내는 것은 HTML 콘텐츠를 보내는 것과 같습니다. 유일한 차이점은 페이지의 컨텍스트 속성을 text/xml로 설정해야 한다는 것입니다. 컨텍스트 속성을 설정하려면 다음과 같이 <%@page % > 명령을 사용하세요.

<%@ page contentType="text/xml" %>

다음 예에서는 XML 콘텐츠를 브라우저로 보냅니다.

<%@ page contentType="text/xml" %>

<books>
   <book>
      <name>Padam History</name>
      <author>ZARA</author>
      <price>100</price>
   </book>
</books>

다른 브라우저 사용 이 예제를 방문하여 이 예제에서 제공하는 문서 트리를 확인하세요.


JSP에서 XML 처리

JSP를 사용하여 XML을 처리하기 전에 XML 및 XPath와 관련된 두 개의 라이브러리 파일을 <Tomcat 설치 디렉터리>lib 디렉터리에 배치해야 합니다.

  • XercesImpl.jar: 여기에서 다운로드하십시오. http://www.apache.org/dist/xerces/j/

  • xalan.jar: http://xml.apache.org/xalan-j/

books.xml 파일 다운로드:

<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>

main.jsp 파일:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %>
 
<html>
<head>
  <title>JSTL x:parse Tags</title>
</head>
<body>
<h3>Books Info:</h3>
<c:import var="bookInfo" url="http://localhost:8080/books.xml"/>
 
<x:parse xml="${bookInfo}" 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>

http://localhost:8080/main.jsp를 방문하면 실행 결과는 다음과 같습니다.

BOOKS INFO:
The title of the first book is:Padam History 
The price of the second book: 2000

JSP를 사용하여 XML 형식 지정

XSLT 스타일 시트 style.xsl 파일:

<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl=
"http://www.w3.org/1999/XSL/Transform" version="1.0">
 
<xsl:output method="html" indent="yes"/>
 
<xsl:template match="/">
  <html>
  <body>
   <xsl:apply-templates/>
  </body>
  </html>
</xsl:template>
 
<xsl:template match="books">
  <table border="1" width="100%">
    <xsl:for-each select="book">
      <tr>
        <td>
          <i><xsl:value-of select="name"/></i>
        </td>
        <td>
          <xsl:value-of select="author"/>
        </td>
        <td>
          <xsl:value-of select="price"/>
        </td>
      </tr>
    </xsl:for-each>
  </table>
</xsl:template>
</xsl:stylesheet>

main.jsp 파일:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %>
 
<html>
<head>
  <title>JSTL x:transform 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>
 
<c:import url="http://localhost:8080/style.xsl" var="xslt"/>
<x:transform xml="${xmltext}" xslt="${xslt}"/>
 
</body>
</html>

실행 결과는 다음과 같습니다. :

xml-1.jpg


JSTL을 사용하여 XML을 처리하는 방법에 대한 자세한 내용은 JSP 표준 태그 라이브러리를 참조하세요.