เมื่อส่งข้อมูล XML ผ่าน HTTP จำเป็นต้องใช้ JSP เพื่อจัดการเอกสาร XML ขาเข้าและขาออก เช่น เอกสาร RSS เนื่องจากเป็นเอกสาร XML จึงเป็นเพียงกลุ่มข้อความ การสร้างเอกสาร XML โดยใช้ JSP นั้นไม่ยากไปกว่าการสร้างเอกสาร HTML
การส่งเนื้อหา XML โดยใช้ JSP จะเหมือนกับการส่งเนื้อหา HTML ข้อแตกต่างเพียงอย่างเดียวคือคุณต้องตั้งค่าแอตทริบิวต์บริบทของเพจเป็น text/xml หากต้องการตั้งค่าแอตทริบิวต์บริบท ให้ใช้คำสั่ง <%@page %> เช่นนี้:
<%@ หน้า contentType="text/xml" %>
ตัวอย่างถัดไปส่งเนื้อหา XML ไปยังเบราว์เซอร์:
<%@ page contentType="text/xml" %><books> <book> <name>ประวัติ Padam</name> <author>ZARA</author> <price>100</price> </book></ หนังสือ>
ใช้เบราว์เซอร์อื่นเพื่อเข้าถึงตัวอย่างนี้และดูโครงสร้างเอกสารที่ตัวอย่างแสดงผล
ก่อนที่จะใช้ JSP เพื่อประมวลผล XML คุณต้องวางไฟล์ไลบรารีสองไฟล์ที่เกี่ยวข้องกับ XML และ XPath ในไดเร็กทอรี <Tomcat Installation Directory>lib:
XercesImpl.jar: ดาวน์โหลดที่นี่ http://www.apache.org/dist/xerces/j/
xalan.jar: ดาวน์โหลดที่นี่ http://xml.apache.org/xalan-j/index.html
ไฟล์หนังสือ.xml:
<books><book> <name>ประวัติปาดัม</name> <author>ZARA</author> <price>100</price></book><book> <name>Great Mistry</name> <author> NUHA</author> <ราคา>2000</price></book></books>
ไฟล์ main.jsp:
-
ภาษาหน้า
-
"จาวา"
ประเภทเนื้อหา
-
"ข้อความ/html; ชุดอักขระ=UTF-8"
การเข้ารหัสหน้า
-
"UTF-8"
-
-
คำนำหน้า taglib
-
"ค"
ยูริ
-
"http://java.sun.com/jsp/jstl/core"
-
-
คำนำหน้า taglib
-
"เอ็กซ์"
ยูริ
-
"http://java.sun.com/jsp/jstl/xml"
-
<html>
<หัว>
<ชื่อเรื่อง>
JSTL x: แยกแท็ก
</ชื่อเรื่อง>
</หัว>
<ร่างกาย>
<h3>
ข้อมูลหนังสือ:
</h3>
<c:นำเข้า
var
-
"ข้อมูลหนังสือ"
URL
-
"http://localhost:8080/books.xml"
-
<x:แยกวิเคราะห์
xml
-
"${bookInfo}"
var
-
"เอาท์พุท"
-
<ข>
ชื่อหนังสือเล่มแรกคือ
</ข>
-
<x:ออก
เลือก
-
"$output/หนังสือ/หนังสือ[1]/ชื่อ"
-
<br>
<ข>
ราคาเล่มสอง
</ข>
-
<x:ออก
เลือก
-
"$เอาท์พุท/หนังสือ/หนังสือ[2]/ราคา"
-
</ร่างกาย>
</html>
ไปที่ http://localhost:8080/main.jsp และผลลัพธ์จะเป็นดังนี้:
ข้อมูลหนังสือ:ชื่อหนังสือเล่มแรกคือ:ประวัติปาดัม ราคาหนังสือเล่มที่สอง: 2000
นี่คือไฟล์ style.xsl สไตล์ชีต 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 เลือก = "ชื่อ"/></i> </td> <td> <xsl:value-of select="author"/> </td> <td> <xsl:value-of select="price"/ > </td> </tr> </xsl:สำหรับแต่ละ> </table></xsl:template></xsl:stylesheet>
นี่คือไฟล์ main.jsp:
<%@ คำนำหน้า taglib = "c" uri = "http://java.sun.com/jsp/jstl/core" %><%@ คำนำหน้า taglib = "x" uri = "http://java.sun. com/jsp/jstl/xml" %> <html><head> <title>JSTL x:transform แท็ก</title></head><body><h3>ข้อมูลหนังสือ:</h3><c:set var="xmltext"> <books> <book> <name>ประวัติ Padam</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