JSP - Dữ liệu XML
Khi bạn gửi dữ liệu XML qua HTTP, bạn nên sử dụng JSP để xử lý các tài liệu XML đến và đi; ví dụ, tài liệu RSS. Vì một tài liệu XML chỉ đơn thuần là một loạt văn bản, nên việc tạo một tài liệu thông qua JSP dễ dàng hơn nhiều so với việc tạo một tài liệu HTML.
Gửi XML từ JSP
Bạn có thể gửi nội dung XML bằng cách sử dụng JSP giống như cách bạn gửi HTML. Sự khác biệt duy nhất là bạn phải đặt loại nội dung trên trang của mình thành text / xml. Để đặt loại nội dung, hãy sử dụng<%@page%> thẻ, như thế này -
<%@ page contentType = "text/xml" %>
Ví dụ sau sẽ cho thấy cách gửi nội dung XML đến trình duyệt:
<%@ page contentType = "text/xml" %>
<books>
<book>
<name>Padam History</name>
<author>ZARA</author>
<price>100</price>
</book>
</books>
Truy cập XML ở trên bằng các trình duyệt khác nhau để xem bản trình bày cây tài liệu của XML ở trên.
Xử lý XML trong JSP
Trước khi tiến hành xử lý XML bằng JSP, bạn sẽ cần sao chép hai thư viện liên quan đến XML và XPath sau vào <Tomcat Installation Directory>\lib -
XercesImpl.jar - Tải xuống từ https://www.apache.org/dist/xerces/j/
xalan.jar - Tải xuống từ https://xml.apache.org/xalan-j/index.html
Hãy để chúng tôi đưa nội dung sau vào tệp 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>
Hãy thử những điều sau main.jsp, giữ trong cùng một thư mục -
<%@ 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>
Truy cập JSP ở trên bằng cách sử dụng http://localhost:8080/main.jsp, kết quả sau sẽ được hiển thị:
Books Info:
The title of the first book is:Padam History
The price of the second book: 2000
Định dạng XML với JSP
Hãy xem xét biểu định kiểu XSLT sau 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>
Bây giờ hãy xem xét tệp JSP sau:
<%@ 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>
Kết quả sau sẽ được hiển thị:
Books Info:
Padam History
ZARA
100
Great Mistry
NUHA
2000
Để biết thêm về xử lý XML bằng JSTL, bạn có thể kiểm tra Thư viện thẻ chuẩn JSP .