تبلیغات
تبلیغات

آموزش خواندن xml در php با SimpleXML – بخش اول

SimpleXML در PHP، یک parser یا تجزیه‌کننده‌ی مبتنی بر درخت (tree-based parser) است که یک راه ساده برای گرفتن نام المنت‌ها، ویژگی‌ها و محتوایشان از ساختار XML می‌باشد. SimpleXML، یک سند XML را به یک ساختار داده‌ای تبدیل می‌کند که می‌توانید مانند یک کالکشن یا آرایه، درون آن iterate یا پیمایش کنید.
در مقایسه با DOM  یا Expat parser، روش SimpleXML، تعداد خطوط کمتری را برای خواندن داده‌های متنی از یک عنصر می‌خواهد و بدین منظور با چند خط کد ساده، می‌توان کاری که می‌خواهیم را به سادگی انجام داد.

نکته: از نسخه‌ی 5 به بعد PHP، توابع SimpleXML بخشی از هسته‌ی PHP شده و نیازی نیست چیز دیگری بدین منظور نصب شود.

آموزش خواندن XML از یک رشته

در این روش، از تابع simplexml_load_string برای خواندن متن XML ، از یک string استفاده می‌کنیم؛ فرض کنید یک رشته به نام myXMLData داریم:

همانطور که می‌بینید، متن xml را داخل این رشته قرار داده‌ایم؛ حال برای خواندن این xml و تجزیه کردن آن، از تابع گفته شده استفاده می‌کنیم:

حالا با print_r کردن مقدار گرفته شده، شما شاهد خروجی زیر خواهید بود:

SimpleXMLElement Object ( [to] => Hadi [from] => Akbarzadeh [heading] => Reminder [body] => Don’t forget FuLLKade this weekend! )

همانطور که می‌بینید، به شکل آرایه درآمده است.

مدیریت خطا

مثال زیر را در نظر بگیرید:

در این‌جا، ما یک رشته‌ی xml دارای مشکلی داریم که اگر بعد از خواندن آن، خروجی برابر false باشد، یعنی دارای خطا است.
سپس تک تک خطاهارا چاپ کرده ایم، اما این خطاها با استفاده از توابع libxml گرفته می‌شوند، بدین صورت که قبل از خواندن، حتما باید تابع libxml_use_internal_errors را با مقدار true فراخوانی کنیم، سپس زمانی که خطا وجود داشت، از libxml_get_errors آن‌ها را بگیریم.

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

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

آموزش خواندن XML از یک فایل XML

در این روش، از تابع simplexml_load_file برای خواندن متن XML ، از یک فایل XML استفاده می‌کنیم؛ این فایل می‌تواند روی سرور خودمان یا در جای دیگری باشد.
فرض کنید فایلی با نام note.xml، کنار فایل PHP شامل کدمان قرار داده‌ایم که شامل محتوای زیر می‌باشد:

حالا، برای خواندن این فایل، از کد زیر استفاده می‌کنیم:

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

SimpleXMLElement Object ( [to] => Hadi [from] => Akbarzadeh [heading] => Reminder [body] => Don’t forget FuLLKade this weekend! )


در بخش بعدی به موارد بیشتری خواهیم پرداخت. (به زودی)

کانال تلگرام فول کده
تبلیغات

درباره نویسنده

هادی اکبرزاده

[ مدیر فول کده ]

علاقه‌مند به اشتراک‌گذاری اطلاعات در هر زمینه‌ای
برنامه‌نویس فول استک

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

نظرات ثبت شده بدون دیدگاه