English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

معالجة بيانات XML JSP

عند إرسال بيانات XML عبر HTTP، من الضروري استخدام جافا سكريبت سيرفلت لمعالجة المستندات XML الداخلية والخارجية، مثل مستندات RSS. كمسند XML، إنه مجرد مجموعة من النصوص، وإنشاء مستند XML باستخدام جافا سكريبت سيرفلت لا يختلف عن إنشاء مستند HTML.

إرسال XML باستخدام جافا سكريبت سيرفلت

إرسال محتوى XML باستخدام جافا سكريبت سيرفلت يشبه إرسال محتوى HTML. الفرق الوحيد هو أنك بحاجة إلى تعيين خاصية السياق لصفحة إلى text/xml. لتحديد خاصية السياق، استخدم الأمر <%@page %>، مثل هذا:

<%@ page contentType="text/xml" %>

فيما يلي مثال على إرسال محتوى XML إلى المتصفح:

<%@ page contentType="text/xml" %>
<books>
   <book>
      <name>Padam History</name>
      <author>ZARA</author>
      <price>100</price>
   </book>
</books>

استخدم متصفحات مختلفة للوصول إلى هذا المثال واطلع على شجرة المستند التي يقدمها هذا المثال.

معالجة XML في جافا سكريبت سيرفلت

قبل استخدام جافا سكريبت سيرفلت لمعالجة XML، يجب عليك وضع مكتبتين متعلقتين بXML وXPath في مجلد <Tomcat Installation Directory>\lib:

ملف 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>

ملف 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>جافا سكريبت تيبل إكس إل</title>
</head>
<body>
<h2>معلومات الكتب:</h2>
<c:import var="bookInfo" url="http://localhost:8080/books.xml"/>
 
<x:parse xml="${bookInfo}" var="output"/>
<b>عنوان الكتاب الأول هو</b>: 
<x:out select="$output/books/book[1]/name"/>
<br>
<b>سعر الكتاب الثاني</b>: 
<x:out select="$output/books/book[2]/price"/>
 
</body>
</html>

زيارة http://localhost:8080/main.jsp، النتيجة التشغيلية كالتالي:

معلومات الكتب:
عنوان الكتاب الأول هو: تاريخ بادام 
سعر الكتاب الثاني: 2000

استخدام JSP لتشكيل XML

هذا هو ملف XSLT النمط 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>

هذا هو ملف 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>علامات x:transform JSTL</title>
</head>
<body>
<h2>معلومات الكتب:</h2>
<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>

نتائج التنفيذ كالتالي:

للحصول على معلومات أكثر حول معالجة XML باستخدام JSTL، يرجى الرجوع إلىمكتبة العلامات القياسية JSP.