پردازش فایل های XML ، در PHP

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
قهرست مطالب:

  1. پردازش بر روی اطلاعات فایل های XML ، با SimpleXML در PHP
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
پردازش بر روی اطلاعات فایل های XML ، با SimpleXML در PHP

پردازش بر روی اطلاعات فایل های XML ، با SimpleXML در PHP

در PHP ، روش هایی مثل XML Expat Parser و XML DOM و XML SimpleXML برای پردازش اطلاعات فایل های XML وجود دارد، که در این مبحث، قصد داریم اندکی در مورد SimpleXML شرح بدهیم.

فرض کنید یک فایل XML با نام example.xml داریم که دارای کدهای زیر می باشد (یک سری تگ را با نام های دلخواه در آن تعریف کرده ایم) :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?[/B]xml version[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"1.0"[/COLOR] encoding[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"UTF-8"[/COLOR][B]?>[/B]
<information>
<name>hamid</name>
<age>20</age>
<language>persian</language>
<city>tehran</city>
</information>[/FONT]
[/FONT][/COLOR]
برای دیدن ساختار اطلاعات موجود در فایل example.xml ، کدهای PHP زیر را در یک فایل PHP نوشته و فایل PHP را اجرا می کنیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#000088]$xml[/COLOR][COLOR=#339933]=[/COLOR][COLOR=#990000]simplexml_load_file[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"example.xml"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"<pre>"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#990000]print_r[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$xml[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"</pre>"[/COLOR][COLOR=#339933];[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]SimpleXMLElement Object
[COLOR=#009900]([/COLOR]
    [COLOR=#009900][[/COLOR]name[COLOR=#009900]][/COLOR] [COLOR=#339933]=>[/COLOR] hamid
    [COLOR=#009900][[/COLOR]age[COLOR=#009900]][/COLOR] [COLOR=#339933]=>[/COLOR] [COLOR=#CC66CC]20[/COLOR]
    [COLOR=#009900][[/COLOR]language[COLOR=#009900]][/COLOR] [COLOR=#339933]=>[/COLOR] persian
    [COLOR=#009900][[/COLOR]city[COLOR=#009900]][/COLOR] [COLOR=#339933]=>[/COLOR] tehran
[COLOR=#009900])[/COLOR][/FONT]
[/FONT][/COLOR]
اکنون فرض کنید که تنها بخواهیم اطلاعات مربوط به تگ (tag) با نام name را نمایش بدهیم، برای این منظور، کدهای PHP زیر را می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#000088]$xml[/COLOR][COLOR=#339933]=[/COLOR][COLOR=#990000]simplexml_load_file[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"example.xml"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#000088]$name[/COLOR][COLOR=#339933]=[/COLOR][COLOR=#000088]$xml[/COLOR][COLOR=#339933]->[/COLOR][COLOR=#004000]name[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#B1B100]echo[/COLOR] [COLOR=#000088]$name[/COLOR][COLOR=#339933];[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]hamid[/FONT]
[/FONT][/COLOR]
[h=2]دسترسی به مشخصه های (attributes) تگ ها (tags) در فایل XML :[/h]همان طور که می دانید، در فایل XML ، هر تگ (tag) می تواند دارای تعدادی مشخصه (attribute) باشد. مثلا فرض کنید تگ name که در مثال قبل به کار بردیم، دارای یک مشخصه با نام family باشد :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#339933]<[/COLOR]name family[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"heidari"[/COLOR][COLOR=#339933]>[/COLOR]hamid[COLOR=#339933]</[/COLOR]name[COLOR=#339933]>[/COLOR][/FONT]
[/FONT][/COLOR]
بنابراین باید روشی نیز برای فراخوانی مشخصه های تگ ها داشته باشیم. برای آشنایی با روش فراخوانی مشخصه ها در فایل XML ، به مثال زیر توجه کنید :

[h=4]مثال :[/h]همان فایل example.xml مثال قبل را این بار کمی تغییر می دهیم (افزودن یک مشخصه به تگ name) :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?[/B]xml version[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"1.0"[/COLOR] encoding[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"UTF-8"[/COLOR][B]?>[/B]
<information>
<name family="heidari">hamid</name>
<age>20</age>
<language>persian</language>
<city>tehran</city>
</information>[/FONT]
[/FONT][/COLOR]
حال ابتدا کل ساختار فایل XML را با کدهای PHP نمایش می دهیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#000088]$xml[/COLOR][COLOR=#339933]=[/COLOR][COLOR=#990000]simplexml_load_file[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"example.xml"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"<pre>"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#990000]print_r[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$xml[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"</pre>"[/COLOR][COLOR=#339933];[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]SimpleXMLElement Object
[COLOR=#009900]([/COLOR]
    [COLOR=#009900][[/COLOR]name[COLOR=#009900]][/COLOR] [COLOR=#339933]=>[/COLOR] hamid
    [COLOR=#009900][[/COLOR]age[COLOR=#009900]][/COLOR] [COLOR=#339933]=>[/COLOR] [COLOR=#CC66CC]20[/COLOR]
    [COLOR=#009900][[/COLOR]language[COLOR=#009900]][/COLOR] [COLOR=#339933]=>[/COLOR] persian
    [COLOR=#009900][[/COLOR]city[COLOR=#009900]][/COLOR] [COLOR=#339933]=>[/COLOR] tehran
[COLOR=#009900])[/COLOR][/FONT]
[/FONT][/COLOR]
اکنون تنها مشخصه family از تگ name را نمایش می دهیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#000088]$xml[/COLOR][COLOR=#339933]=[/COLOR][COLOR=#990000]simplexml_load_file[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"example.xml"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#000088]$family[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#000088]$xml[/COLOR][COLOR=#339933]->[/COLOR][COLOR=#004000]name[/COLOR][COLOR=#339933]->[/COLOR][COLOR=#004000]attributes[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933]->[/COLOR][COLOR=#004000]family[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#B1B100]echo[/COLOR] [COLOR=#000088]$family[/COLOR][COLOR=#339933];[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]heidari[/FONT]
[/FONT][/COLOR]
 

Similar threads

بالا