تحويل XML إلى مصفوفة ترابطية في PHP

Convert Xml Associative Array Php



XML (لغة التوصيف القابلة للامتداد) هي نوع واحد من لغة الترميز المستخدمة لتخزين البيانات بتنسيق يمكن للبشر قراءته. إنه يختلف عن لغات الترميز الأخرى. كل علامة من هذه اللغة محددة من قبل المستخدم. يعد استخدام XML هو الحل الأفضل لتخزين كمية صغيرة من البيانات عندما لا ترغب في استخدام أي قاعدة بيانات لتخزين البيانات. يمكن الوصول بسهولة إلى البيانات من مستند XML واستخدامها في أي تطبيق ويب باستخدام برنامج نصي PHP. يتم عرض كيفية تحليل مستند XML وتخزينه في مصفوفة ترابطية في هذا البرنامج التعليمي.

الوظائف الضرورية

يتم استخدام بعض الوظائف المضمنة لتحويل محتوى XML إلى مصفوفة PHP ارتباطية. يتم شرح أغراض الوظائف المختلفة أدناه.







file_get_contents ():



تقوم هذه الوظيفة بإرجاع بيانات السلسلة عن طريق تحويل أي بيانات XML. يأخذ أي اسم ملف XML كوسيطة.



simplexml_load_string ():





تقوم هذه الدالة بإرجاع كائن XML عن طريق تحويل بيانات سلسلة XML. يأخذ بيانات سلسلة XML كوسيطة.

simplexml_load_file ():



تقوم هذه الوظيفة بإرجاع كائن XML عن طريق تحويل محتوى ملف XML. يأخذ اسم ملف XML كوسيطة.

SimpleXMLElement ():

يتم استخدامه لإنشاء كائن XML من بيانات XML. يأخذ قيمة محتوى XML كوسيطة.

json_encode ():

تقوم بإرجاع كائن JSON عن طريق تحويل كائن XML. يأخذ متغير كائن XML كوسيطة.

json_decode ():

تقوم بإرجاع مصفوفة PHP الترابطية عن طريق تحويل بيانات JSON. يأخذ متغير كائن JSON كوسيطة.

إنشاء ملف XML

سيُطلب منك إنشاء ملف XML أو تحديد بيانات XML في البرنامج النصي لمعرفة طريقة تحويل بيانات XML إلى مصفوفة PHP ارتباطية. قم بإنشاء ملف XML يسمى course.xml بالمحتوى التالي وتخزينه في الموقع حيث يوجد نص PHP. يحتوي الملف على عناصر فرعية ضمن عنصر أصلي. لذلك ، سيتم إنشاء مصفوفة ارتباطية ثنائية الأبعاد بعد تحويل ملف XML التالي إلى مصفوفة PHP.

دورات. xml

إصدار='1.0'؟>
>
>برمجة الويب>
>6 اشهر>
>
>
>متعة برمجة PHP>
>آلان فوربس>
>جزيرة بلوم>
>
>
>بي أتش بي& MySQL Novice to Ninja
توم بتلر وكيفن يانك
SitePoint


رئيس First PHP و MySQL
لين بيجلي ومايكل موريسون
أورايلي


مثال 1: تحويل محتوى ملف XML إلى مصفوفة ترابطية دون التحقق من الخطأ

يوضح البرنامج النصي التالي استخدامات الدالتين file_get_contents () و simplexml_load_string () لإنشاء كائن XML. هنا ، يتم استخدام ملف course.xml للتحويل الذي تم إنشاؤه من قبل. بعد ذلك ، يتم استخدام الدالة json_encode () و json_decode () للحصول على المصفوفة الترابطية بعد تحويل محتوى ملف XML. إذا لم يكن هناك خطأ في محتوى XML ، فلن يظهر أي خطأ بواسطة البرنامج النصي التالي. هنا ،

  يتم استخدام العلامة لطباعة المصفوفة بطريقة منسقة.



// تحديد ملف XML الموجود
xml دولار = 'courses.xml'؛

// اقرأ المحتويات الكاملة لملف XML كسلسلة XML
xml دولار البيانات = file_get_contents (xml دولار)؛

// تحويل بيانات سلسلة XML إلى كائن XML
xmlObject دولار = simplexml_load_string (xml دولار البيانات)؛

// تحويل كائن XML إلى كائن JSON
jsonObject $ = json_encode (xmlObject دولار)؛

// تحويل كائن JSON إلى مصفوفة ترابطية
$ assArray = json_decode (jsonObject $و حقيقية)؛

// طباعة هيكل المصفوفة الترابطية
رما - طرد - قذف '

';  
print_r ($assArray);
echo '

'
؛

؟>

انتاج:

سيظهر الإخراج التالي بعد تنفيذ نص PHP. هنا ، يتم إنشاء مصفوفة ثنائية الأبعاد بناءً على محتوى ملف XML ، course.xml.

مثال 2: تحويل محتوى ملف XML إلى مصفوفة ارتباطية مع التحقق من الخطأ

من الأفضل فحص الخطأ عند تحويل XML إلى مصفوفة ترابطية. سيساعد المبرمج على تصحيح أخطاء الكود إذا تم تنفيذ فحص الأخطاء في البرنامج النصي. يوضح البرنامج النصي التالي طرق تحويل محتوى ملف XML إلى مصفوفة ترابطية باستخدام دالة simplexml_load_file () مع معالجة الأخطاء. تُستخدم الدالة libxml_use_internal_errors () مع القيمة TRUE لتمكين معالجة الأخطاء. إذا كان محتوى ملف XML المستخدم في البرنامج النصي يحتوي على أي خطأ ، فستقوم وظيفة simplexml_load_file () بإرجاع خطأ ، وستتم طباعة رسالة الخطأ باستخدام وظيفة libxml_get_errors (). إذا لم يكن هناك خطأ في ملف XML ، فسيتم تحويل محتوى الملف بشكل صحيح إلى مصفوفة ترابطية ثنائية الأبعاد.



// تمكين معالجة أخطاء المستخدم
libxml_use_internal_errors (حقيقية)؛

// إنشاء كائن XML
objXml دولار = simplexml_load_file ('courses.xml')؛

// خطأ في الطباعة إذا أعاد كائن XML خطأ
لو (objXml دولار === خاطئة) {
رما - طرد - قذف 'حدثت أخطاء في تحليل ملف XML.ن'؛
foreach( libxml_get_errors () كما خطأ $) {
رما - طرد - قذف خطأ $->رسالة؛
}
خروج ؛
}

// تحويل كائن XML إلى كائن JSON
objJson $ = json_encode (objXml دولار)؛
// تحويل كائن JSON إلى مصفوفة ترابطية
$assarr = json_decode (objJson $و حقيقية)؛

// طباعة هيكل المصفوفة الترابطية
رما - طرد - قذف '
';  
print_r ($assarr);
echo '
'
؛

؟>

انتاج:

سيظهر الإخراج التالي بعد تنفيذ نص PHP. هنا ، لا يوجد خطأ في ملف XML. لذلك ، تم إنشاء مصفوفة ثنائية الأبعاد مثل المثال السابق بناءً على محتوى ملف XML ، course.xml.

مثال 3: تحويل محتوى XML إلى مصفوفة ترابطية

يوضح البرنامج النصي التالي طريقة تحويل بيانات XML إلى صفيف ترابطي باستخدام دالة SimpleXMLElement (). في البرنامج النصي ، يتم تخزين محتوى XML في متغير باسم $ xml يُستخدم كوسيطة للدالة ، SimpleXMLElement (). بعد ذلك ، يتم استخدام الدالة json_encode () و json_decode () للحصول على المصفوفة الترابطية بعد تحويل محتوى ملف XML.



// تحديد متغير XML
xml دولار = <<


[البريد الإلكتروني محمي]

12 / أ ، دانوندي
دكا



[البريد الإلكتروني محمي]

156 ، عزر
دكا



[البريد الإلكتروني محمي]

21 / ب ، مقبازر
دكا



XML
؛

// إنشاء كائن XML
xmlObject دولار = الجديدSimpleXMLElement(xml دولار)؛
// إنشاء كائن JSON
jsonObject $ = json_encode (xmlObject دولار)؛
// تحويل كائن JSON إلى مصفوفة ترابطية
$ assArray = json_decode (jsonObject $و حقيقية)؛

// طباعة هيكل المصفوفة الترابطية
رما - طرد - قذف '
';  
print_r ($assArray);
echo '
'
؛

؟>

انتاج:

سيظهر الإخراج التالي بعد تنفيذ نص PHP. هنا ، يتم إنشاء مصفوفة ثنائية الأبعاد بناءً على محتوى متغير XML ، $ xml.

استنتاج:

كانت هناك ثلاث طرق مختلفة لتحويل محتوى XML إلى مصفوفة ترابطية تم عرضها في هذا البرنامج التعليمي. سيساعد هذا القراء على معرفة طريقة العمل مع بيانات XML وتحليل البيانات من محتوى XML باستخدام برنامج نصي PHP بسهولة.