pemprosesan data XML JSP


Apabila menghantar data XML melalui HTTP, JSP perlu digunakan untuk memproses dokumen XML masuk dan keluar, seperti dokumen RSS. Sebagai dokumen XML, ia hanyalah sekumpulan teks Mencipta dokumen XML menggunakan JSP tidak lebih sukar daripada mencipta dokumen HTML.


Menghantar XML menggunakan JSP

Menghantar kandungan XML menggunakan JSP adalah sama seperti menghantar kandungan HTML. Satu-satunya perbezaan ialah anda perlu menetapkan atribut konteks halaman kepada teks/xml. Untuk menetapkan atribut konteks, gunakan perintah <%@page % > seperti ini:

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

Contoh seterusnya menghantar kandungan XML ke penyemak imbas:

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

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

Menggunakan penyemak imbas yang berbeza Come lawati contoh ini dan lihat pepohon dokumen yang dibentangkan oleh contoh ini.


Memproses XML dalam JSP

Sebelum menggunakan JSP untuk memproses XML, anda perlu meletakkan dua fail perpustakaan yang berkaitan dengan XML dan XPath dalam direktori <Tomcat Installation Directory>lib:

  • XercesImpl.jar: Muat turun di sini http://www.apache.org/dist/xerces/j/

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

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

fail.jsp utama:

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

Lawati http://localhost:8080/main.jsp, keputusan berjalan adalah seperti berikut:

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

Gunakan JSP untuk memformat XML

Ini ialah fail style.xsl helaian gaya XSLT:

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

Ini ialah fail.jsp utama:

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

Hasil yang dijalankan adalah seperti berikut :

xml-1.jpg


Untuk maklumat lanjut tentang menggunakan JSTL untuk memproses XML, sila rujuk Perpustakaan Tag Standard JSP.