با عرض سلام و وقت به خیر خدمت کاربران سایت پی وی لرن و کاربرانی که دوره ی آموزش php 7 را دنبال می کنند.
در جلسه گذشته سر فصل XML را با معرفی و آموزش تجزیه کننده های XML که می توانند در php 7 نیز مورد استفاده قرار گرفته و مفید باشند؛ پرداختیم.
در ادامه ای دوره و سر فصل XML در php 7، آموزش کار با تجزیه کننده SimpleXML در php 7 را به علاقمندان این دوره ارائه می نماییم.
در جلسه گذشته آموختیم که
چندین تکنولوژی وب مانند RSS Feeds و Podcasts در XML نوشته شده اند.
نحوه ایجاد XML ساده و آسان است.
زبان XML راهی برای ساختن داده ها و به اشتراک گذاری آن ها در وب سایت ها است.
تجزیه کننده XML ابزاری است که به شما در خواندن و به روز رسانی، ایجاد و دستکاری یک سند XML کمک می کند.
در PHP دو نوع تجزیه کننده XML وجود دارد:
SimpleXML یک فرمت php است که به ما امکان می دهد تا به راحتی داده های XML را مدیریت کرده و دریافت نماییم.
SimpleXML یک تجزیه کننده درختی است.
اگر می دانید ساختار یا طرح سند XML چیست؛ SimpleXML یک روش آسان برای گرفتن نام یک عنصر، خصیصه ها و محتوای متنی است.
SimpleXML یک سند XML را به یک ساختار داده تبدیل می کند که می تواند از طریق مجموعه ای از آرایه ها و اشیاء تکرار شود.
SimpleXML در مقایسه با DOM یا Parser Expat، SimpleXML خطوط کمتری را برای خواندن داده های متنی از یک عنصر به کار می برد.
از PHP 5، توابع SimpleXML بخشی از هسته php است . برای استفاده از این توابع نیازی به نصب آن ها ندارید.
تابع ()PHP simplexml_load_string برای خواندن داده های XML از یک رشته استفاده می شود.
فرض کنید یک متغیر داریم که حاوی داده های XML است، مانند مثال زیر:
1 2 3 4 5 6 7 8 | $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>"; |
مثال زیر نشان می دهد چگونه از تابع ()simplxml_load_string برای خواندن داده های XML از یک رشته استفاده کنید:
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?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); ?> |
خروجی کد بالا:
1 | SimpleXMLElement Object ( [to] => Tove [from] => Jani [heading] => Reminder [body] => Don't forget me this weekend! ) |
نکته: هنگام استفاده از قابلیت های libxml، هنگام بارگذاری سند تمام اشتباهات XML را بازیابی کنید و سپس خطاها را تکرار کنید.
مثال زیر تلاش می کند یک رشته XML شکسته را بارگیری کند:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?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); } ?> |
خروجی کد بالا:
1 2 3 | Failed loading XML: Opening and ending tag mismatch: user line 3 and wronguser Opening and ending tag mismatch: email line 4 and wrongemail |
تابع ()simplexml_load_file در php برای خواندن اطلاعات XML از یک فایل استفاده می شود.
فرض کنید یک فایل XML با نام note.xml داریم که به صورت زیر است:
1 2 3 4 5 6 7 | <?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_file برای خواندن داده های XML از یک فایل استفاده کنید:
1 2 3 4 | <?php $xml=simplexml_load_file("note.xml") or die("Error: Cannot create object"); print_r($xml); ?> |
خروجی کد بالا:
1 | SimpleXMLElement Object ( [to] => Tove [from] => Jani [heading] => Reminder [body] => Don't forget me this weekend! ) |
در جلسه بعدی می آموزیم که چگونه می توان / مقدار گره را از یک فایل XML با SimpleXML دریافت / بازیابی کرد!
در این جلسه با آموزش کار با تجزیه کننده SimpleXML در php 7 همراه شما بودیم.
در جلسه بعدی به آموزش دریافت مقدار گره به کمک SimpleXML در php 7 می پردازیم.
با پی وی لرن همراه باشید.