مبدل SimpleXML در PHP

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

SimpleXML یک افزونه PHP است که به ما اجازه می‌دهد که به راحتی داده XML را ویرایش و دریافت کنیم.[۱]

SimpleXML یک مبدل بر پایه نمودار درختی است.

SimpleXML یک راه ساده برای دریافت نام عنصر، ویژگی‌ها و محتوای متنی را در صورتی که شما ساختار یا لی اوت سند XML را بدانید فراهم می‌کند.

SimpleXML یک سند XML را به یک ساختاری از داده‌ها تبدیل می‌کند که شما می‌توانید در آن همانند مجموعه‌ای از آرایه‌ها و اشیاء پیمایش کنید.

در مقایسه با DOM یا مبدل Expat ,SimpleXML تعداد خطوط کمتری برای خواندن متن داده از یک عنصر دارد.

نصب

از نسخه PHP 5، توابع مبدل SimpleXML بخشی از هسته PHP هستند. برای استفاده از این توابع نیز هیچ عملیات نصبی نیاز نیست.

مبدل SimpleXML در PHP - خواندن از متن

تابع simplexml_load_string() در PHP برای خواندن داده XML از یک متن استفاده می‌شود.

فرض بگیرید که ما یک متغیر داریم که شامل داده‌های XML است، همانند مثال زیر:

1 $myXMLData =
2 "<?xml version='1.0' encoding='UTF-8'?>
3 <note>
4 <to>Tove</to>
5 <from>Jani</from>
6 <heading>Reminder</heading>
7 <body>Don't forget me this weekend!</body>
8 </note>";

مثال زیر به شما نحوه استفاده از تابع simplexml_load_string() را برای خواندن اطلاعات XML از یک متن را نشان می‌دهد:

مثال

 1 <?php
 2 $myXMLData =
 3 "<?xml version='1.0' encoding='UTF-8'?>
 4 <note>
 5 <to>Tove</to>
 6 <from>Jani</from>
 7 <heading>Reminder</heading>
 8 <body>Don't forget me this weekend!</body>
 9 </note>";
10 
11 $xml=simplexml_load_string($myXMLData) or die("Error: Cannot create object");
12 print_r($xml);
13 ?>


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


خروجی کد بالا به صورت زیر خواهد بود:

SimpleXMLElement Object ( [to] => Tove [from] => Jani [heading] => Reminder [body] => Don't forget me this weekend! )
نکته‌ای دربارهٔ مدیریت خطا: از قابلیت libxml برای برگرداندن تمامی خطاهای XML هنگام بارگذاری سند و پیمایش در بین خطاها استفاده کنید. مثال زیر سعی می‌کند یک متن XML اشتباه را بارگذاری کند:

مثال

 1 <?php
 2 libxml_use_internal_errors(true);
 3 $myXMLData =
 4 "<?xml version='1.0' encoding='UTF-8'?>
 5 <document>
 6 <user>John Doe</wronguser>
 7 <email>john@example.com</wrongemail>
 8 </document>";
 9 
10 $xml = simplexml_load_string($myXMLData);
11 if ($xml === false) {
12     echo "Failed loading XML: ";
13     foreach(libxml_get_errors() as $error) {
14         echo "<br>", $error->message;
15     }
16 } else {
17     print_r($xml);
18 }
19 ?>


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


خروجی کد بالا به صورت زیر خواهد بود:

Failed loading XML:
Opening and ending tag mismatch: user line 3 and wronguser
Opening and ending tag mismatch: email line 4 and wrongemail

مبدل SimpleXML در PHP - خواندن از فایل

تابع simplexml_load_string() برای خواندن داده XML از یک فایل استفاده می‌شود.

فرض کنید ما یک فایل XML به نام "note.xml" داریم، که به صورت زیر است:

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

مثال زیر به شما نحوه استفاده از تابع simplexml_load_string() برای خواندن داده XML از یک فایل را نشان می‌دهد:

مثال

1 <?php
2 $xml=simplexml_load_file("note.xml") or die("Error: Cannot create object");
3 print_r($xml);
4 ?>


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


خروجی کد بالا به صورت زیر خواهد بود:

SimpleXMLElement Object ( [to] => Tove [from] => Jani [heading] => Reminder [body] => Don't forget me this weekend! )
نکته: فصل بعدی به شما نحوه دریافت/بازگردانی مقادیر گره‌ها را از یک فایل XML با استفاده از SimpleXML را نشان می‌دهد.

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

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


منابع آموزشی