recent
مواضيع ساخنة

شرح مفصل لملفات XSL و XSLT لتنسيق ملفات XML

الصفحة الرئيسية

  



ما هو XSLT

قبل البدء في تعلم انشاء ملفات XSL يجب ان يكون لديك خبرة في اساسيات لغة XML حيث ان ملفات XSL مكتوبة باستخدام لغة XML.


 يجب أن نتعرف أولاً على XSL. XSL هي اختصار للجملة التالية (EXtensible Stylesheet Language) والتي تعني بالعربية لغة أوراق الأنماط الموسعة. إنها لغة تصميم لـملفات XML تمامًا مثل ما هي CSS لغة تصميم لـ HTML .


XSLT تعني تحويل XSL. يتم استخدامه لتحويل مستندات XML إلى تنسيقات أخرى يسهل قراءتها والتعامل معها مثل تحويل XML إلى HTML.


 


ما هو XSL

في ملفات HTML يتم تحديد العلامات مسبقًا ولكن في مستندات XML لا يتم تحديدها وكتابتها مسيقا ويجب تحديدها بعد انشاء ملف XML .


طور اتحاد شبكة الويب العالمية (W3C) لغة XSL لفهم وتصميم مستند XML ، والذي يمكن أن يكون بمثابة لغة أنماط قائمة على XML.


يحدد مستند XSL كيف يجب على المتصفح عرض مستند بصيغة XML .


 


الأجزاء الرئيسية من لملفات XSL.


XSLT: هي لغة لتحويل مستندات XML إلى أنواع أخرى متنوعة من المستندات.

XPATH:·هي لغة للتنقل في مستندات XML.

XQuery:·هي لغة للاستعلام عن مستندات XML.

XLS_FO:·هي لغة لتنسيق مستندات XML.


كيف يعمل XSLT.


تمت كتابة ورقة أنماط XSLT بتنسيق XML يتم استخدامه لتعريف قواعد التحويل التي سيتم تطبيقها على مستند XML لتحويله الى صيغة اخرى. يأخذ معالج XSLT ورقة أنماط XSLT ويطبق قواعد التحويل على مستند XML الهدف ثم يقوم بإنشاء مستند منسق في شكل XML أو HTML أو تنسيق نصي حسب القواعد التي تم تحديدها. في النهاية يتم استخدامه بواسطة مُنسق XSLT لتوليد الإخراج النتيجة النهائية لعملية التحويل وعرضها للمستخدم النهائي.


 


فوائد استخدام XSLT


· يوفر XSLT طريقة سهلة لدمج بيانات XML في العرض التقديمي لأنه يطبق تحويلات معرّفة من قبل المستخدم على مستند XML ويمكن أن يكون الإخراج HTML أو XML أو أي مستند منظم آخر.


· يوفر XSLT Xpath لتحديد موقع العناصر / السمات داخل مستند XML لذلك فهي طريقة أكثر ملاءمة لاجتياز مستند XML بدلاً من الطريقة التقليدية ، باستخدام لغة البرمجة النصية.


· XSLT هو القالب القائم. لذلك فهو أكثر مرونة في مواجهة التغييرات في المستندات من المستوى المنخفض لـ DOM و SAX.


· باستخدام XML و XSLT ، سيبدو البرنامج النصي لواجهة مستخدم التطبيق نظيفًا وسيكون من الأسهل التعديل عليه.


· تستند قوالب XSLT على نمط XPath الذي يعد قويًا جدًا من حيث الأداء لمعالجة مستند XML.


· يمكن استخدام XSLT كلغة تحقق من الصحة لأنها تستخدم نهج مطابقة أنماط الشجرة.


يمكنك تغيير المخرجات ببساطة بتعديل التحولات في ملفات XSL

 شرح XSL و XSLT مع الامثلة


لنأخذ مثالاً على الية عمل هذه الملفات سنأخذ عينة من ملف XML ونحوله إلى مستند HTML بتنسيق جيد.


قم بإنشاء ملف XML باسم employee.xml ، وقم باضافة الكود التالي داخل الملف:

<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type = "text/xsl" href = "employee.xsl"?> 
<class>
  <employee id="001">
    <firstname>SAEB</firstname>
    <lastname>QATTOUSA</lastname>
    <nickname>QATTOUSA</nickname>
    <salary>38000</salary>
  </employee>
  <employee id="024">
    <firstname>Yazan</firstname>
    <lastname>Qattousa</lastname>
    <nickname>Yazan</nickname>
    <salary>22000</salary>
  </employee>
  <employee id="056">
    <firstname>Mohammad</firstname>
    <lastname>Sawalhi</lastname>
    <nickname>Sawalhi</nickname>
    <salary>26000</salary>
  </employee>
</class>


 


الان سنقوم بانشاء ملف XSL لمستند XML أعلاه. يجب ان يحتوي الملف على التالي:


· يجب أن يكون للصفحة لقب موظف.

· يجب أن تحتوي الصفحة على جدول بتفاصيل الموظف.

· يجب أن تحتوي الأعمدة على الرؤوس التالية: المعرف والاسم الأول واسم العائلة والاسم المستعار والراتب.


 


الخطوة 1: قم بإنشاء مستند XSLT


قم بإنشاء مستند XSLT الذي يفي بالمتطلبات المذكورة أعلاه. قم بتسميته كـ Employee.xsl واحفظه في نفس الموقع الخاص بـ Employee.xml.

<?xml version = "1.0" encoding = "utf-8"?>  
<xsl:stylesheet version = "1.0"   
xmlns:xsl = "http://www.w3.org/1999/xsl/transform">     
   <xsl:template match = "/">   

      <html>   
         <body>  
            <h2>employee</h2>   
            <table border = "1">   
               <tr bgcolor = "#9acd32">   
                  <th>id</th>   
                  <th>first name</th>   
                  <th>last name</th>   
                  <th>nick name</th>   
                  <th>salary</th>   
               </tr>   
              
              <xsl:for-each select="class/employee">   
                  <tr>   
                     <td><xsl:value-of select = "@id"/></td>   
                     <td><xsl:value-of select = "firstname"/></td>   
                     <td><xsl:value-of select = "lastname"/></td>   
                     <td><xsl:value-of select = "nickname"/></td>   
                     <td><xsl:value-of select = "salary"/></td>     
                  </tr>   
               </xsl:for-each>   
            </table>   
         </body>   
      </html>   
   </xsl:template>    
</xsl:stylesheet>  


الخطوة 2: قم بإدراج مستند XSLT في مستند XML


قم بتحديث مستند Employ.xml بعلامة xml-stylesheet التالية. ويجب ان تكون قيمة href بنفس اسم ملف Employee.xsl:


<?xml-stylesheet type = "text/xsl" href = "employee.xsl"?> 


وسيصبح كود ملف employee.xml كالتالي:

<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type = "text/xsl" href = "employee.xsl"?> 
<class>
  <employee id="001">
    <firstname>saeb</firstname>
    <lastname>qattousa</lastname>
    <nickname>qattousa</nickname>
    <salary>38000</salary>
  </employee>
  <employee id="024">
    <firstname>yazan</firstname>
    <lastname>qattousa</lastname>
    <nickname>yazan</nickname>
    <salary>22000</salary>
  </employee>
  <employee id="056">
    <firstname>mohammad</firstname>
    <lastname>sawalhi</lastname>
    <nickname>sawalhi</nickname>
    <salary>26000</salary>
  </employee>
</class>


الخطوة 3: عرض مستند XML في Internet Explorer


وسيكون شكل المخرجات كالتالي




اذا كنت مبتديء في لغة XML فعلى الاغلب كيف تحول شكل الملف لهذا الشكل. لا تقلق هذا ما سنشرحه بالتفصيل ادناه:


اذا قمت بفتح ملف employee.xml باستخدام برنامج XML Notepad سيكون شكل الملف كالتالي:



باستخدمات ملف XSL قمنا بتحويل هذا الملف الى جدول مرتب وجميل وسهل القراءة سنقوم هنا بشرح ملف employee.xsl لتتضح الامور ولتتمكن من انشاء ملف لاي ملف XML بنفس الطريقة.

كما تلاحظ في الصورة اعلاه فان كل employee يسمى node ويحتوي على عناصر فرعية بتفاصيل الموظف وهذه العناصر التي قمنا باستخراجها وعرضها في الجدول.

<?xml version = "1.0" encoding = "UTF-8"?>  
<xsl:stylesheet version = "1.0"   
xmlns:xsl = "http://www.w3.org/1999/XSL/Transform">     

الكود المذكور اعلاه هو كود عام لملفات XML لتحديد الترميز ونسخة XML وغيرها من الامور.


 <xsl:template match = "/">   
      <html>   
         <body>  


السطر الاول من الكود التالي هو لتحديد من اين ستقراً البيانات وباضافة علامه / تعني انك ستقرأ كل ملف الــ XML.


السطرين الثاني والثالث هي اكواد معروفة لبدأ كود الــ HTML.


 <h2>Employee</h2>


هذا الكود يمثل عنوان الصفحة ويمكنك تعديل حلمة employee بما يناسبك

  <table border = "1">   
               <tr bgcolor = "#9acd32">   
                  <th>ID</th>   
                  <th>First Name</th>   
                  <th>Last Name</th>   
                  <th>Nick Name</th>   
                  <th>Salary</th>   
               </tr>   

الكود السابق لانشاء الجدول الذي ستعرض فيه البيانات وكل th تمثل اسم عامود للجدول ولا يشترك ان تكون مسمياتها مطابقة لمكونات ملف XML ويمكن تغييره بما يناسبك.

<xsl:for-each select="class/employee">   
                  <tr>   
                     <td><xsl:value-of select = "@id"/></td>   
                     <td><xsl:value-of select = "firstname"/></td>   
                     <td><xsl:value-of select = "lastname"/></td>   
                     <td><xsl:value-of select = "nickname"/></td>   
                     <td><xsl:value-of select = "salary"/></td>     
                  </tr>   
               </xsl:for-each>   

الكود السابق لجلب بيانات الموظفين وعرضها في الجدول. حيث ان xsl:for-each select="class/employee" تعني انه لكل موظف في ملف XML قم بجلب البيانات ويجب ان يكون ترتيب td بنفس ترتيب th اعلاه ليتم عرض البيانات بالترتيب الصحيح.


  </table>   
         </body>   
      </html>   
   </xsl:template>    
</xsl:stylesheet>  

الكود التالي لاغلاق الجدول وHTML وملف الXSL .


المثال المذكور اعلاه هو مثال بسيط على تحويل ملفات XML باستخدام ملفات XSL وبالطبع يوجد اكثير من الميزات توفرها ملفات XSL لتحويل ملفات XML اكثر تعقيدا وبمحتويات متنوعة. وفي حال وجود اية استفسارات بخصوص هذه الملفات يمكنكم التواصل معنا عن طريق التعليقات او من خلال صفحتنا على الفيس بوك. علما انه سيتم تحديث هذا الموضوع بشكل مستمر واضافة العديد من الشروحات المهمة.



 

google-playkhamsatmostaqltradent