PHP – پارسر SimpleXML

پارسر SimpleXML یک پارسر مبتنی بر درخت (Tree-based parser) است که به شما امکان می‌دهد به راحتی به نام عناصر (elements)، صفات (attributes) و محتوای متنی (textual content) یک سند XML دسترسی پیدا کنید، به شرطی که ساختار یا چینش سند XML را بدانید.

نصب

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

خواندن XML از رشته (String)

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

فرض کنید یک متغیر داریم که حاوی داده‌های XML است، مانند این:

$myXMLData = "<?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>";

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

مثال

<?php
$myXMLData = "<?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 = simplexml_load_string($myXMLData) or die("Error: Cannot create object");
print_r($xml);
?>

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

SimpleXMLElement Object ( [to] => Tove [from] => Jani [heading] => Reminder [body] => Don't forget me this weekend! )

نکته‌ای درباره‌ی مدیریت خطا (Error Handling)

برای بازیابی تمام خطاهای XML هنگام بارگذاری سند، می‌توانید از قابلیت libxml استفاده کنید و سپس خطاها را مرور کنید.

مثال زیر تلاش می‌کند یک رشته XML معیوب را بارگذاری کند:

مثال

<?php
libxml_use_internal_errors(true);
$myXMLData = "<?xml version='1.0' encoding='UTF-8'?>
<document>
  <user>John Doe</wronguser>
  <email>john@example.com</wrongemail>
</document>";

$xml = simplexml_load_string($myXMLData);
if ($xml === false) {
  echo "Failed loading XML: ";
  foreach(libxml_get_errors() as $error) {
    echo "<br>", $error->message;
  }
} else {
  print_r($xml);
}
?>

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

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

خواندن XML از فایل

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

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



  Tove
  Jani
  Reminder
  Don't forget me this weekend!

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

مثال

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

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

SimpleXMLElement Object ( [to] => Tove [from] => Jani [heading] => Reminder [body] => Don't forget me this weekend! )

نکته:

فصل بعدی نشان می‌دهد چگونه می‌توانید مقادیر نودها (node values) را از یک فایل XML با استفاده از SimpleXML بازیابی کنید.

پست های مرتبط

مطالعه این پست ها رو از دست ندین!
JavaScript - تاریخ‌ها (Dates)

JavaScript – تاریخ‌ها (Dates)

آبجکت‌های تاریخ (Date) در جاوااسکریپت آبجکت‌های تاریخ در جاوااسکریپت به ما امکان کار با تاریخ و زمان را می‌دهند....

بیشتر بخوانید
JavaScript - آرایه‌های ثابت (Array Const)

JavaScript – آرایه‌های ثابت (Array Const)

جاوااسکریپت: تعریف آرایه با const در سال 2015، جاوااسکریپت کلمه کلیدی مهمی به نام const را معرفی کرد. این...

بیشتر بخوانید
JavaScript - تکرار آرایه‌ها (Array Iteration)

JavaScript – تکرار آرایه‌ها (Array Iteration)

جاوا اسکریپت: تکرار بر روی آرایه‌ها جاوا اسکریپت روش‌های مختلفی برای تکرار (Iteration) بر روی آرایه‌ها ارائه می‌دهد که...

بیشتر بخوانید

نظرات

سوالات و نظراتتون رو با ما به اشتراک بذارید

برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید.