آموزش مثال تجزیه کننده SAX در PHP

3 سال پیش

آموزش مثال تجزیه کننده SAX در PHP

در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، به آموزش مثال تجزیه کننده SAX در PHP خواهیم پرداخت.

تجزیه کننده SAX برای تجزیه و تحلیل فایل xml و برای مدیریت حافظه بهتر از نمونه تجزیه کننده xml و DOM است. هیچ داده ای را در حافظه ذخیره نمی کند بنابراین می توان از آن برای فایل های بسیار بزرگ استفاده کرد. مثال زیر نحوه دریافت داده ها از xml با استفاده از SAX API را نشان می دهد.

SAX.xml

<?xml version = "1.0" encoding = "utf-8"?>
<tutors>
   <course>
      <name>Android</name>
      <country>India</country>
      <email>contact@tutorialspoint.com</email>
      <phone>123456789</phone>
   </course>
   
   <course>
      <name>Java</name>
      <country>India</country>
      <email>contact@tutorialspoint.com</email>
      <phone>123456789</phone>
   </course>
   
   <course>
      <name>HTML</name>
      <country>India</country>
      <email>contact@tutorialspoint.com</email>
      <phone>123456789</phone>
   </course>
</tutors>

 

SAX.php

فایل php باید به شرح زیر باشد –

<?php
   //Reading XML using the SAX(Simple API for XML) parser 
   
   $tutors   = array();
   $elements   = null;
   
   // Called to this function when tags are opened 
   function startElements($parser, $name, $attrs) {
      global $tutors, $elements;
      
      if(!empty($name)) {
         if ($name == 'COURSE') {
            // creating an array to store information
            $tutors []= array();
         }
         $elements = $name;
      }
   }
   
   // Called to this function when tags are closed 
   function endElements($parser, $name) {
      global $elements;
      
      if(!empty($name)) {
         $elements = null;
      }
   }
   
   // Called on the text between the start and end of the tags
   function characterData($parser, $data) {
      global $tutors, $elements;
      
      if(!empty($data)) {
         if ($elements == 'NAME' || $elements == 'COUNTRY' ||  $elements == 'EMAIL' ||  $elements == 'PHONE') {
            $tutors[count($tutors)-1][$elements] = trim($data);
         }
      }
   }
   
   // Creates a new XML parser and returns a resource handle referencing it to be used by the other XML functions. 
   $parser = xml_parser_create(); 
   
   xml_set_element_handler($parser, "startElements", "endElements");
   xml_set_character_data_handler($parser, "characterData");
   
   // open xml file
   if (!($handle = fopen('sax.xml', "r"))) {
      die("could not open XML input");
   }
   
   while($data = fread($handle, 4096)) // read xml file {
      xml_parse($parser, $data);  // start parsing an xml document 
   }
   
   xml_parser_free($parser); // deletes the parser
   $i = 1;
   
   foreach($tutors as $course) {
      echo "course No - ".$i.'<br/>';
      echo "course Name - ".$course['NAME'].'<br/>';
      echo "Country - ".$course['COUNTRY'].'<br/>';
      echo "Email - ".$course['EMAIL'].'<br/>';
      echo "Phone - ".$course['PHONE'].'<hr/>'; 
      $i++; 
   }
?>

 

نتیجه زیر را به همراه خواهد داشت –

SAX

 

منبع.

 

 

لیست جلسات قبل آموزش PHP

  1. آموزش PHP
  2. معرفی PHP
  3. آموزش تنظیمات محیط PHP
  4. آموزش نحو PHP
  5. آموزش انواع متغیر در PHP
  6. آموزش انواع ثابت ها در PHP
  7. آموزش انواع عملگرها در PHP
  8. آموزش تصمیم گیری در PHP
  9. آموزش انواع حلقه در PHP
  10. آموزش آرایه ها در PHP
  11. آموزش رشته ها در PHP
  12. آموزش مفاهیم وب در PHP
  13. آموزش روش های  GET & POST در PHP
  14. آموزش Inclusion فایل در PHP
  15. آموزش پرونده ها و I / O در PHP
  16. آموزش توابع در PHP
  17. آموزش کوکی ها در PHP
  18. آموزش جلسات در PHP
  19. آموزش ارسال ایمیل با استفاده از PHP
  20. آموزش بارگذاری پرونده در PHP
  21. آموزش استاندارد کدگذاری در PHP
  22. آموزش متغیرهای از پیش تعریف شده در PHP
  23. آموزش عبارات منظم در PHP
  24. آموزش مدیریت خطا و استثنا در PHP
  25. آموزش اشکال زدایی در PHP
  26. آموزش تاریخ و زمان در PHP
  27. آموزش MySQL در PHP
  28. آموزش AJAX در PHP
  29. آموزش XML در PHP
  30. آموزش برنامه نویسی شی گرا در PHP
  31. آموزش PHP برای توسعه دهندگان C
  32. آموزش PHP برای توسعه دهندگان PERL
  33. آموزش معرفی فرم در PHP
  34. آموزش اعتبار سنجی در PHP
  35. آموزش فرم کامل در PHP
  36. آموزش ورود به سیستم در PHP
  37. آموزش ورود به فیس بوک در PHP
  38. آموزش ادغام PayPal در PHP
  39. آموزش ورود به MySQL در PHP
  40. آموزش جستجوی Ajax در PHP
  41. آموزش Ajax XML Parser در PHP
  42. آموزش جستجوی خودکار Ajax در PHP
  43. آموزش Ajax RSS در PHP
  44. آموزش XML در PHP
  45. آموزش XML ساده در PHP
  46. آموزش XML Get در PHP
0
برچسب ها :
نویسنده مطلب erfan molaei

دیدگاه شما

بدون دیدگاه