English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Quando si inviano dati XML tramite HTTP, diventa necessario utilizzare JSP per elaborare documenti XML in entrata e in uscita, come i documenti RSS. Come documento XML, è solo un insieme di testo, creare un documento XML con JSP non è più difficile di creare un documento HTML.
Inviare il contenuto XML con JSP è uguale a inviare il contenuto HTML. L'unica differenza è che è necessario impostare l'attributo context della pagina come text/xml. Per impostare l'attributo context, utilizzare il comando <%@page %> come segue:
<%@ page contentType="text/xml" %>
Quindi questa istanza invia il contenuto XML al browser:
<%@ page contentType="text/xml" %> <books> <book> <name>Padam History</name> <author>ZARA</author> <price>100</price> </book> </books>
Accedi a questa istanza utilizzando diversi browser per vedere l'albero dei documenti presentato da questa istanza.
Prima di utilizzare JSP per elaborare XML, è necessario mettere due file di libreria relativi a XML e XPath nel percorso \<Tomcat Installation Directory>\lib:
XercesImpl.jar: scarica quihttp://www.apache.org/dist/xerces/j/
xalan.jar: scarica quihttp://archive.apache.org/dist/xml/xalan-j/
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>
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> <h2>Books Info:</h2> <c:import var="bookInfo" url="http://localhost:8080/books.xml"/> <x:parse xml="${bookInfo}" var="output"/> <b>Il titolo del primo libro è:</b> <x:out select="$output/books/book[1]/name"/> <br> <b>Il prezzo del secondo libro</b>: <x:out select="$output/books/book[2]/price"/> </body> </html>
Accedi a http://localhost:8080/main.jsp, il risultato è il seguente:
INFO LIBRI: Il titolo del primo libro è: Padam History Il prezzo del secondo libro: 2000
Questo è il file di foglio di stile 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>
Questo è il file 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> <h2>Books Info:</h2> <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>
运行结果如下:
更多关于使用JSTL处理XML的内容请查阅JSP标准标签库。