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