SimpleXML PHP

SimpleXML وظایف XML معمولی را پردازش می‌کند، و وظایف دیگر به دیگر وسایل واگذار می‌شوند.

SimpleXML چیست؟

SimpleXML یک ویژگی جدید در PHP 5 است. در صورت آشنایی با layout مستند XML، راهی آسان برای دریافت ویژگی‌ها و متن عنصر است.

در مقایسه با تحلیل‌گرهای DOM یا Expat، SimpleXML تنها با چند خط کد می‌تواند داده‌های متن یک عنصر را بخواند.

SimpleXML می‌تواند یک مستند XML را به یک شیء تبدیل کند، مانند:

  • عنصر - به عنوان یک SimpleXMLElement تبدیل می‌شود. وقتی که چندین عنصر در سطح مشابه وجود دارند، در یک آرایه قرار می‌گیرند.
  • ویژگی‌ها - از طریق آرایه مرتبط دسترسی دارند، که شامل نام ویژگی‌ها هستند.
  • داده‌های عنصر - داده‌های متن یک عنصر به صورت رشته تبدیل می‌شوند. اگر یک عنصر چندین گره متن داشته باشد، به ترتیب یافت شده‌شان نمایش داده می‌شوند.

وقتی که وظایف زیر بنایی مانند زیر را انجام می‌دهید، استفاده از SimpleXML بسیار سریع است:

  • فایل XML را بخوانید
  • داده‌ها را از رشته XML استخراج کنید
  • ویرایش گره‌های متن یا ویژگی‌ها

اما، در هنگام پردازش XML پیشرفته مانند نام‌های فضایی، بهترین کار استفاده از تحلیل‌گر Expat یا XML DOM است.

نصب

از نسخه 5.0 PHP، تابع SimpleXML بخشی از هسته PHP است. نیازی به نصب نیست تا از این توابع استفاده کنید.

از SimpleXML استفاده کنید

این فایل XML است:

<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>

We plan to output the element name and data from the above XML file.

This is what needs to be done:

  1. Load XML file
  2. Get the name of the first element
  3. Use the children() function to create a loop triggered at each child node
  4. Output the element name and data of each child node

Example

<?php
$xml = simplexml_load_file("test.xml");
echo $xml->getName() . "<br />";
foreach($xml->children() as $child)
  {
  echo $child->getName() . ": " . $child . "<br />";
  }
?>

The output of the above code:

note
to: George
from: John
heading: Reminder
body: Don't forget the meeting!

More information about PHP SimpleXML

For more information about PHP SimpleXML, please visit our PHP SimpleXML Reference Manual.