عند إرسال بيانات XML عبر HTTP، من الضروري استخدام JSP للتعامل مع مستندات XML الواردة والصادرة، مثل مستندات RSS. باعتباره مستند XML، فهو مجرد مجموعة من النصوص. إن إنشاء مستند XML باستخدام JSP ليس أكثر صعوبة من إنشاء مستند HTML.
إن إرسال محتوى XML باستخدام JSP هو نفس إرسال محتوى HTML. والفرق الوحيد هو أنك تحتاج إلى تعيين سمة سياق الصفحة على text/xml. لتعيين سمة السياق، استخدم الأمر <%@page %>، مثل هذا:
<%@ 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:
<الكتب><كتاب> <الاسم>تاريخ بادام</name> <author>ZARA</author> <price>100</price></book><book> <name>الغموض العظيم</name> <author> نها</author> <price>2000</price></book></books>
ملف main.jsp:
<%@
لغة الصفحة
=
"جافا"
نوع المحتوى
=
"نص/html؛ مجموعة الأحرف = UTF-8"
pageEncoding
=
"UTF-8"
%>
<%@
بادئة تاجليب
=
"ج"
أوري
=
"http://java.sun.com/jsp/jstl/core"
%>
<%@
بادئة تاجليب
=
"س"
أوري
=
"http://java.sun.com/jsp/jstl/xml"
%>
<أتش تي أم أل>
<الرأس>
<العنوان>
JSTL x: تحليل العلامات
</العنوان>
</الرأس>
<الجسم>
<ح3>
معلومات الكتب:
</h3>
<ج:استيراد
فار
=
"معلومات الكتاب"
عنوان URL
=
"http://localhost:8080/books.xml"
/>
<x:تحليل
xml
=
"${معلومات الكتاب}"
فار
=
"الإخراج"
/>
<ب>
عنوان الكتاب الأول هو
</ب>
:
<x:خارج
يختار
=
"$output/books/book[1]/name"
/>
<ر>
<ب>
سعر الكتاب الثاني
</ب>
:
<x:خارج
يختار
=
"$output/books/book[2]/price"
/>
</الجسم>
</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 way="html" المسافة البادئة = "نعم"/> <xsl:template match = "/"> <html> <body> <xsl:apply-templates/> </body> </html></xsl:template> <xsl:template match="books"> <table> <xsl:for-each حدد = "book"> <tr> <td> <i><xsl:value-of حدد = "اسم"/></i> </td> <td> <xsl:value-of حدد = "author"/> </td> <td> <xsl:value-of حدد = "price"/ > </TD> </tr> </xsl:for-each> </table></xsl:template></xsl:stylesheet>
هذا هو الملف 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</title></head><body><h3>معلومات الكتب:</h3><c:set var="xmltext"> <books> <book> <name>تاريخ بادام</name> <author>ZARA</author> <price>100</price> </book> <book> <name>الغموض العظيم< /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.