مبدل XML Expat در PHP

از ویکی‌کد
پرش به ناوبری پرش به جستجو
Main Page Tutorial
Php-menu.png
موارد آموزشی
فرم‌ها در PHP
PHP پیشرفته
شیء گرایی در PHP
پایگاه داده MySQL
XML در PHP
۱مبدل XML
۲مبدل SimpleXML
۳دریافت اطلاعات SimpleXML
۴مبدل XML Expat
۵XML DOM
AJAX در PHP
مثال‌های PHP
مرجع PHP

مبدل پیش‌فرض XML Expat این امر را ممکن می سازد که اسناد XML را در PHP پردازش کنیم.[۱]

مبدل XML Expat

مبدل Expat یک مبدل رویداد محور است.

به تکه کد XML زیر نگاه بیندازید:

<from>Jani</from>

یک مبدل رویداد محور کد XML بالا را به عنوان سه رویداد تشریح می‌کند:

  • آغاز عنصر: from
  • آغاز بخش CDATA، مقدار: Jani
  • پایان عنصر: from

توابع مبدل XML Expat بخشی از هسته PHP هستند. برای استفاده آنها نیاز به هیچگونه نصبی ندارید.

فایل XML

به فایل "note.xml" نگاه کنید. در مثال زیر از این فایل XML استفاده خواهد شد:

<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

مقدار دهی اولیه مبدل XML Expat

ما می‌خواهیم که مبدل XML Expat در PHP را مقداردهی اولیه کنیم، تعدادی مدیریت کننده برای رویدادهای مختلفی در XML تعریف کنیم، و سپس فایل XML را تبدیل کنیم.

مثال

 1 <?php
 2 // Initialize the XML parser
 3 $parser=xml_parser_create();
 4 
 5 // Function to use at the start of an element
 6 function start($parser,$element_name,$element_attrs) {
 7   switch($element_name) {
 8     case "NOTE":
 9     echo "-- Note --<br>";
10     break;
11     case "TO":
12     echo "To: ";
13     break;
14     case "FROM":
15     echo "From: ";
16     break;
17     case "HEADING":
18     echo "Heading: ";
19     break;
20     case "BODY":
21     echo "Message: ";
22   }
23 }
24 
25 // Function to use at the end of an element
26 function stop($parser,$element_name) {
27   echo "<br>";
28 }
29 
30 // Function to use when finding character data
31 function char($parser,$data) {
32   echo $data;
33 }
34 
35 // Specify element handler
36 xml_set_element_handler($parser,"start","stop");
37 
38 // Specify data handler
39 xml_set_character_data_handler($parser,"char");
40 
41 // Open XML file
42 $fp=fopen("note.xml","r");
43 
44 // Read data
45 while ($data=fread($fp,4096)) {
46   xml_parse($parser,$data,feof($fp)) or
47   die (sprintf("XML Error: %s at line %d",
48   xml_error_string(xml_get_error_code($parser)),
49   xml_get_current_line_number($parser)));
50 }
51 
52 // Free the XML parser
53 xml_parser_free($parser);
54 ?>


مشاهدهٔ نتیجه


توضیح مثال :

  1. مقدار دهی اولیه مبدل XML با تابع xml_parser_create()
  2. ساخت توابعی برای استفاده با  مدیریت کننده رویدادهای مختلف
  3. اضافه کردن تابع xml_set_element_handler() برای مشخص کردن اینکه کدام تابع می بایست در زمانی که مبدل با تگ‌های باز و بسته مواجهه می شود اجرا شود
  4. اضافه کردن تابع xml_set_character_data_handler() برای مشخص کردن اینکه کدام تابع می بایست در زمانی که با کاراکترهای داده مواجهه می شود اجرا شود
  5. تبدیل فایل "note.xml" با تابع xml_parse()
  6. به خاطر امکان وجود خطا، تابع xml_error_string() را برای تبدیل خطای XML به یک توضیح متنی اضافه کرده‌ایم
  7. فراخوانی تابع xml_parser_free() برای ازاد کردن فضای حافظه اختصاص داده شده به تابع xml_parser_create()

مطالب بیشتر در مورد مبدل XML Expat  در PHP

برای اطلاعات بیشتر در مورد توابع Expat در PHP، مرجع مبدل XML در PHP را مشاهده کنید.


منابع آموزشی