Lors de l'envoi de données XML via HTTP, il est nécessaire d'utiliser JSP pour gérer 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.
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>Histoire Padam</name> <author>ZARA</author> <price>100</price> </book></ livres>
Utilisez un autre navigateur pour accéder à cet exemple et voir l’arborescence des documents affichée par l’exemple.
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 ici http://xml.apache.org/xalan-j/index.html
Fichier livres.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 :
<%@
langue des pages
=
"Java"
Type de contenu
=
"texte/html; jeu de caractères=UTF-8"
pageEncodage
=
"UTF-8"
%>
<%@
préfixe taglib
=
"c"
uri
=
"http://java.sun.com/jsp/jstl/core"
%>
<%@
préfixe taglib
=
"x"
uri
=
"http://java.sun.com/jsp/jstl/xml"
%>
<html>
<tête>
<titre>
JSTL x:analyser les balises
</titre>
</tête>
<corps>
<h3>
Informations sur les livres :
</h3>
<c:importer
var
=
"livreInfo"
URL
=
"http://localhost:8080/books.xml"
/>
<x:analyser
XML
=
"${bookInfo}"
var
=
"sortir"
/>
<b>
Le titre du premier livre est
</b>
:
<x:sorti
sélectionner
=
"$output/livres/livre[1]/nom"
/>
<br>
<b>
Le prix du deuxième livre
</b>
:
<x:sorti
sélectionner
=
"$sortie/livres/livre[2]/prix"
/>
</corps>
</html>
Visitez http://localhost:8080/main.jsp et les résultats sont les suivants :
INFO LIVRES :Le titre du premier livre est :Padam History Le prix du deuxième livre : 2000
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> <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>Informations sur les livres :</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 en cours d'exécution sont les suivants :
Pour plus d'informations sur l'utilisation de JSTL pour traiter XML, veuillez consulter la bibliothèque de balises standard JSP.