آموزش مثال تجزیه کننده SAX در PHP
آموزش مثال تجزیه کننده SAX در PHP
در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، به آموزش مثال تجزیه کننده SAX در PHP خواهیم پرداخت.
تجزیه کننده SAX برای تجزیه و تحلیل فایل xml و برای مدیریت حافظه بهتر از نمونه تجزیه کننده xml و DOM است. هیچ داده ای را در حافظه ذخیره نمی کند بنابراین می توان از آن برای فایل های بسیار بزرگ استفاده کرد. مثال زیر نحوه دریافت داده ها از xml با استفاده از SAX API را نشان می دهد.
SAX.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<?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 باید به شرح زیر باشد –
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
<?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++; } ?> |
نتیجه زیر را به همراه خواهد داشت –
لیست جلسات قبل آموزش PHP
- آموزش PHP
- معرفی PHP
- آموزش تنظیمات محیط PHP
- آموزش نحو PHP
- آموزش انواع متغیر در PHP
- آموزش انواع ثابت ها در PHP
- آموزش انواع عملگرها در PHP
- آموزش تصمیم گیری در PHP
- آموزش انواع حلقه در PHP
- آموزش آرایه ها در PHP
- آموزش رشته ها در PHP
- آموزش مفاهیم وب در PHP
- آموزش روش های GET & POST در PHP
- آموزش Inclusion فایل در PHP
- آموزش پرونده ها و I / O در PHP
- آموزش توابع در PHP
- آموزش کوکی ها در PHP
- آموزش جلسات در PHP
- آموزش ارسال ایمیل با استفاده از PHP
- آموزش بارگذاری پرونده در PHP
- آموزش استاندارد کدگذاری در PHP
- آموزش متغیرهای از پیش تعریف شده در PHP
- آموزش عبارات منظم در PHP
- آموزش مدیریت خطا و استثنا در PHP
- آموزش اشکال زدایی در PHP
- آموزش تاریخ و زمان در PHP
- آموزش MySQL در PHP
- آموزش AJAX در PHP
- آموزش XML در PHP
- آموزش برنامه نویسی شی گرا در PHP
- آموزش PHP برای توسعه دهندگان C
- آموزش PHP برای توسعه دهندگان PERL
- آموزش معرفی فرم در PHP
- آموزش اعتبار سنجی در PHP
- آموزش فرم کامل در PHP
- آموزش ورود به سیستم در PHP
- آموزش ورود به فیس بوک در PHP
- آموزش ادغام PayPal در PHP
- آموزش ورود به MySQL در PHP
- آموزش جستجوی Ajax در PHP
- آموزش Ajax XML Parser در PHP
- آموزش جستجوی خودکار Ajax در PHP
- آموزش Ajax RSS در PHP
- آموزش XML در PHP
- آموزش XML ساده در PHP
- آموزش XML Get در PHP
دیدگاه شما