המרת 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 בשם courses.xml עם התוכן הבא ושמור אותו במיקום שבו נמצא סקריפט ה- PHP. הקובץ מכיל רכיבי ילדים מתחת לרכיב האב. אז מערך אסוציאטיבי דו-ממדי ייווצר לאחר המרת קובץ ה- XML ​​הבא למערך PHP.

courses.xml

גִרְסָה='1.0'?>
>
>תכנות אינטרנט>
>6 חודשים>
>
>
>שמחת התכנות PHP>
>אלן פורבס>
>האי שזיפים>
>
>
>PHP& MySQL טירון לנינג'ה
טום באטלר וקווין יאנק
SitePoint


ראש First PHP & MySQL
לין ביגלי ומייקל מוריסון
או 'ריילי


דוגמה 1: המרת תוכן קובץ XML למערך אסוציאטיבי מבלי לבדוק שגיאה

הסקריפט הבא מציג את השימושים בפונקציות file_get_contents () ו- simplexml_load_string () ליצירת אובייקט XML. כאן, קובץ courses.xml משמש להמרה שנוצרה קודם לכן. לאחר מכן, הפונקציה json_encode () וה- json_decode () משמשים להשגת המערך האסוציאטיבי לאחר המרת תוכן קובץ ה- XML. אם אין שגיאה בתוכן ה- XML, לא תוצג שגיאה בסקריפט הבא. כאן, | _+_ | tag משמש להדפסת המערך בצורה מעוצבת.



// הגדר את קובץ ה- XML ​​הקיים
$ xml = 'courses.xml';

// קרא את כל התוכן של קובץ ה- XML ​​כמחרוזת XML
$ xmlData = file_get_contents ($ xml);

// המרת נתוני מחרוזת XML לאובייקט XML
$ xmlObject = simplexml_load_string ($ xmlData);

// המרת אובייקט XML לאובייקט JSON
$ jsonObject = json_encode ($ xmlObject);

// המר את אובייקט JSON למערך אסוציאטיבי
$ assArray = json_decode ($ jsonObject, נָכוֹן);

// הדפס את מבנה המערך האסוציאטיבי
זרק '
  
';

?>

תְפוּקָה:

הפלט הבא יופיע לאחר ביצוע סקריפט ה- PHP. כאן נוצר מערך דו ממדי המבוסס על התוכן של קובץ ה- XML, courses.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. n';
לכל אחד( libxml_get_errors () כפי ש שגיאת $) {
זרק שגיאת $->הוֹדָעָה;
}
יְצִיאָה ;
}

// המרת אובייקט XML לאובייקט JSON
$ objJson = json_encode ($ objXml);
// המר את אובייקט JSON למערך אסוציאטיבי
$ assarr = json_decode ($ objJson, נָכוֹן);

// הדפס את מבנה המערך האסוציאטיבי
זרק '
';  
print_r ($assArray);
echo '
'
;

?>

תְפוּקָה:

הפלט הבא יופיע לאחר ביצוע סקריפט ה- PHP. כאן, אין שגיאה בקובץ ה- XML. אז, מערך דו ממדי נוצר כמו הדוגמה הקודמת המבוסס על התוכן של קובץ ה- XML, courses.xml.

דוגמה 3: המרת תוכן XML למערך אסוציאטיבי

התסריט הבא מציג את הדרך להמיר נתוני XML למערך אסוציאטיבי באמצעות הפונקציה SimpleXMLElement (). בתסריט, תוכן ה- XML ​​מאוחסן במשתנה בשם $ xml המשמש כארגומנט של הפונקציה, SimpleXMLElement (). לאחר מכן, הפונקציה json_encode () וה- json_decode () משמשים להשגת המערך האסוציאטיבי לאחר המרת תוכן קובץ ה- XML.



// הגדר את משתנה ה- XML
$ xml = <<


[מוגן בדוא'ל]

12 / A, Dhanmondi
דאקה



[מוגן בדוא'ל]

156, מוטיב
דאקה



[מוגן בדוא'ל]

21 / B, מוגבזר
דאקה



XML
;

// צור אובייקט XML
$ xmlObject = חָדָשׁSimpleXMLElement($ xml);
// צור אובייקט JSON
$ jsonObject = json_encode ($ xmlObject);
// המר את אובייקט JSON למערך אסוציאטיבי
$ assArray = json_decode ($ jsonObject, נָכוֹן);

// הדפס את מבנה המערך האסוציאטיבי
זרק '
';  
print_r ($assarr);
echo '
'
;

?>

תְפוּקָה:

הפלט הבא יופיע לאחר ביצוע סקריפט ה- PHP. כאן נוצר מערך דו ממדי המבוסס על התוכן של משתנה ה- XML, $ xml.

סיכום:

היו שלוש דרכים שונות להמיר תוכן XML למערך אסוציאטיבי שהוצג במדריך זה. זה יעזור לקוראים להכיר את הדרך לעבוד עם נתוני XML ולנתח את הנתונים מתוכן ה- XML ​​באמצעות סקריפט PHP בקלות.