Traitement des données XML JSP
Lors de l'envoi de données XML via HTTP, il est nécessaire d'utiliser JSP pour traiter les documents XML entrants et sortants, tels que les documents RSS. En tant que document XML, il ne s'agit que d'un ensemble de texte. Créer un document XML à l'aide de JSP n'est pas plus difficile que créer un document HTML.
Envoyer du XML à l'aide de JSP
L'envoi de contenu XML à l'aide de JSP équivaut à l'envoi de contenu HTML. La seule différence est que vous devez définir l'attribut de contexte de la page sur text/xml. Pour définir l'attribut de contexte, utilisez la commande <%@page % >, comme ceci :
<%@ page contentType="text/xml" %>
L'exemple suivant envoie du contenu XML au navigateur :
<%@ page contentType="text/xml" %> <books> <book> <name>Padam History</name> <author>ZARA</author> <price>100</price> </book> </books>
Utilisation d'un autre navigateur visitez cet exemple et voyez l’arborescence des documents présentée par cet exemple.
Traitement XML dans JSP
Avant d'utiliser JSP pour traiter XML, vous devez placer les deux fichiers de bibliothèque liés à XML et XPath dans le répertoire <Tomcat Installation Directory>lib :
-
XercesImpl.jar : téléchargez ici http://www.apache.org/dist/xerces/j/
xalan.jar : Téléchargez http://xml.apache.org/xalan-j/
fichier 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>
fichier 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>
Visitez http://localhost:8080/main.jsp, les résultats en cours d'exécution sont les suivants :
BOOKS INFO: The title of the first book is:Padam History The price of the second book: 2000
Utilisez JSP pour formater XML
Voici le fichier style.xsl de la feuille de style 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>
Voici le fichier 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>
Les résultats d'exécution sont les suivants :
Pour plus d'informations sur l'utilisation de JSTL pour traiter XML, veuillez vous référer à la bibliothèque de balises standard JSP.