PHP – پارسر SimpleXML
پارسر SimpleXML یک پارسر مبتنی بر درخت (Tree-based parser) است که به شما امکان میدهد به راحتی به نام عناصر (elements)، صفات (attributes) و محتوای متنی (textual content) یک سند XML دسترسی پیدا کنید، به شرطی که ساختار یا چینش سند XML را بدانید.
نصب
از نسخه PHP 5 به بعد، توابع SimpleXML بخشی از هسته PHP هستند و برای استفاده از این توابع نیازی به نصب اضافی نیست.
خواندن XML از رشته (String)
$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 بازیابی کنید.
برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید. صفحه ورود و ثبت نام