با سلام خدمت کاربران محترم سایت پی وی لرن. در این جلسه قصد داریم تا کار با مفسر DOM در PHP را به شما آموزش دهیم.
همچنین در جلسات قبل نحوه خواندن و پردازش فایل xml با استفاده از مفسر های SimpleXML و Expat را بررسی کردیم.
پارسر DOM این امکان را به ما می دهد تا فایل های xml را بخوانیم و پردازش کنیم.
پارسر DOM یک پارسر از نوع tree-based می باشد.
به کد XML زیر توجه کنید:
1 2 | <?xml version="1.0" encoding="UTF-8"?> <from>Jani</from> |
DOM فایل XML بالا را به عنوان یک ساختار درختی می بیند:
توابع پارسر DOM بخشی از هسته php می باشند و نیازی به نصب آن ها نداریم.
از فایل 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> |
قصد داریم تا پارسر را راه انداری کرده ، xml را بارگداری کنیم و از آن خروجی بگیریم:
1 2 3 4 5 6 | <?php $xmlDoc = new DOMDocument(); $xmlDoc->load("note.xml"); print $xmlDoc->saveXML(); ?> |
خروجی کد بالا به شکل زیر می باشد:
1 | Tove Jani Reminder Don't forget me this weekend! |
اگر شما گزینه View source را در پنجره مرورگر تان انتخاب کنید، کد HTML زیر را خواهید دید:
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> |
کد مثال بالا یک DOMDocument-Object را ایجاد می کند و xml را از فایل note.xml بارگذاری می کند.
سپس تابع ()saveXML سند xml را در یک string می ریزد. درنتیجه می توانیم آن را چاپ کرده و خروجی بگیریم.
قصد داریم تا پارسر را راه انداری کرده ، xml را بارگداری کنیم و تمام عناصر عنصر <note> را پیمایش کنیم:
1 2 3 4 5 6 7 8 9 | <?php $xmlDoc = new DOMDocument(); $xmlDoc->load("note.xml"); $x = $xmlDoc->documentElement; foreach ($x->childNodes AS $item) { print $item->nodeName . " = " . $item->nodeValue . "<br>"; } ?> |
خروجی کد بالا به شکل زیر می باشد:
1 2 3 4 5 6 7 8 9 | #text = to = Tove #text = from = Jani #text = heading = Reminder #text = body = Don't forget me this weekend! #text = |
می بینید که در مثال بالا برخی از عناصر خالی هستند.
وقتی که xml تولید می شود، معمولا بین گره ها white-space قرار می دهد.
مفسر DOM با این نوع عناصر ماند بقیه برخورد می کند و اگر شما از این عناصر مطلع نباشید، ممکن است به مشکل بر بخورید.
جلسه کار با مفسر DOM در PHP و سری جلسات کار با xml در php نیز به پایان رسید.
در جلسات بعد به مبحث ajax در php خواهیم پرداخت. با ما همراه باشید.