YouTip LogoYouTip

Jsp Xml Data

JSP XML Data Processing

JSP XML Data Processing

When sending XML data via HTTP, it becomes necessary to use JSP to process incoming and outgoing XML documents, such as RSS documents. As an XML document, it is merely a piece of text, and creating an XML document with JSP is no more difficult than creating an HTML document.

Sending XML with JSP

Sending XML content with JSP is the same as sending HTML content. The only difference is that you need to set the page's context attribute to text/xml. To set the context attribute, use the <%@page %> directive, like this:

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

The following example sends XML content to the browser:

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

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

Use different browsers to access this example and see the document tree it presents.

Processing XML in JSP

Before using JSP to process XML, you need to place the two library files related to XML and XPath in the <Tomcat Installation Directory>lib directory:

The books.xml file:

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

The main.jsp file:

<%@ 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/name" />
<br>
<b>The price of the second book</b>: 
<x:out select="$output/books/book/price" />
 
</body>
</html>

Access http://localhost:8080/main.jsp, and the result is as follows:

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

Formatting XML with JSP

This is the XSLT stylesheet style.xsl file:

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

This is the main.jsp file:

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

The result is as follows:

For more information on using JSTL to process XML, please refer to the JSP Standard Tag Library.

← Jsp JavabeanJsp Database Access β†’