מ.תיכנות
|
[מדריך] קריאת קובץ XML בעזרת PHP
שבת שלום, וחג חנוכה שמח 
די משעמם לי עכשיו, חיפשתי נושא לכתוב עליו, ונתקלתי באשכול של המשתמש sUP, אז החלטתי לכתוב מדריך על הנושא.
עבודה עם XML
מה עבודה עם XML יכולה לתת לי?
בעזרת XML תוכלו לשמור פרטים חיוניים, ליצור קבצי RSS שיהיה ניתנים לקריאה על ידי מספר תוכנות, ובעצם תוכלו ליצור קובץ עידכונים של אתרכם, שמשתמשים אחרים יוכלו לקרוא ללא צורך בדפדפן עצמו, אבל לא על זה אני רוצה להסביר במדריך זה.
במדריך זה אני אסביר איך ליצור קובץ XML בסיסי, ודרך קובץ PHP, לשלוף ממנו נתונים ולעשות בהם שימוש באתר אינטרנט.
בכללי, קובץ XML הינו קובץ המורכב מתגיות שאינם מוגדרות כמו HTML, אלא שכאן יש בידכם לקבוע את התגיות בעצמכם, ואת הפרמטרים שלהם, דבר שכמובן אינו דורש תיקניות כמו בHTML.
כל קובץ XML נפתח על ידי השורה הבאה:
PHP קוד:
<?xml version="X" encoding="Y" ?>
כאשר version מציין את גירסת הXML, וencoding את הקידוד של הדף.
יצירת קובץ XML בסיסי
ברגע זה אנו ניצור קובץ XML, אשר שורתו הראשון תהיה הגדרת קובץ XML, דבר אשר יעשה על ידי הקוד שנכתב למעלה.
על מנת להמחיש את האפשרויות שניתנות לעשייה על ידי XML, אנו נבחר בקובץ XML אשר מכיל מידע על אתר אינטרנט כלשהו.
example.xml
PHP קוד:
<?xml version="1.0" encoding="iso-8859-1" ?> <sites> <site> <name>WebProject</name> <author>Tal Gleichger</author> <adress>http://webproject.co.il</adress> </site> <site> <name>Hosts</name> <author>Alon</author> <adress>http://hosts.co.il</adress> </site> </sites>
על מנת לשלוף נתונים מן קובץ הXML, עלינו להגדיר אלמנט חדש, SimpleXMLElement.
PHP קוד:
$XMLFile = 'example.xml'; $xml = new simpleXMLElement($XMLFile,null,true);
הסבר מהיר,
$XMLFile - קובץ הXML אשר בו הנתונים אשר ברצוננו לשלוף
null - מסמל אפשרויות, פרמטר אשר אליו לא תצטרכו להתייחס, ועדיף שתשאירו כערך ריק (null)
true - האם הפרמטר הראשון ($XMLFILE) מסמל כתובת (URL), במקרה זה, כן, כתובת של הקובץ אליו אנו נגשים, ולכן נכתב true, אשר משמעותו "אמת".
לאחר שלב זה, על שעלינו לעשות, זה לגשת לכל מערך על ידי שימוש במשתנה $xml, בצורה הבאה:
PHP קוד:
$xml -> site[0] -> name; // site 1 [webproject] $xml -> site[1] -> name // site 2 [hosts]
כמו שראיתם, הגישה למערכים הינה פשוטה, ועכשיו, נוכל להדפיס את כל הנתונים בקלות בצורה הבאה:
example.php
PHP קוד:
<?Php $xml = new simpleXMLElement('example.xml',null,true); $num = count($xml -> site); for($i = 0; $i < $num; $i++) { print 'Sites name: '.$xml -> site[$i] -> name.'<br />'; print 'Sites author: '.$xml -> site[$i] -> author.'<br />'; print 'Sites adress: '.$xml -> site[$i] -> adress.'<br /><br />'; } ?>
מכיוון שאיננו יודעים מה מספר האתרים הנמצא בתוך הקובץ, הרצתי את הפונקציה count, והכנסתי כערך לתוכה את המערך site, פונקציה זאת בעצם סופרת כמה פעמים המערך קיים בקובץ, ואז מחזירה מספר שלם, אשר הצבתי בלולאה על מנת להדפיס את הנתונים כמספר האתרים הקיים במערכת.
תגובה למשתמש tnadav, על מנת לגשת לפרמטר בתוך התגית עצמה (name="sitesname") עליך פשוט לפנות אליו בצורה הבאה:
PHP קוד:
$xml -> site[array][value]
ובהתאם לקוד PHP שניתן למעלה,
PHP קוד:
$xml -> site[$i]['name'];
- מקווה שעזר למישהו  חג שמח =]
Last edited by WebProject; 23-12-06 at 12:38..
|