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 :
Untuk maklumat lanjut tentang menggunakan JSTL untuk memproses XML, sila rujuk Perpustakaan Tag Standard JSP.