DOM در PHP (XML DOM)
«DOM در PHP» یک «پارسر درختی (Tree-based Parser)» است. یعنی کل XML را به شکل درخت در حافظه می سازد. سپس با گره ها مثل آبجکت کار می کنیم. مثل نقشه مدرسه که همه کلاس ها را یک جا می بینی.
DOM در PHP چیست؟
پارسر DOM کل سند را به گره ها تبدیل می کند. بنابراین دسترسی و ویرایش آسان می شود؛ اما حافظه بیشتری می خواهد. برای فایل های کوچک تا متوسط عالی است.
نصب و پیش نیاز
توابع DOM جزو هسته PHP هستند. بنابراین نیازی به نصب جدا نیست. همین حالا می توانی استفاده کنی.
بارگذاری و خروجی گرفتن از XML
ابتدا یک DOMDocument می سازیم. سپس فایل note.xml را بارگذاری می کنیم. بعد با saveXML() خروجی می گیریم.
<?php
$xmlDoc = new DOMDocument();
$xmlDoc->load("note.xml");
print $xmlDoc->saveXML();
?>
گام های عملی
- کنار اسکریپت، فایل
note.xmlرا بگذار. - DOMDocument بساز و
load()را فراخوانی کن. - با
saveXML()متن 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 دیده می شوند. اگر مزاحم هستند، قبل از پردازش از فیلتر مقدارهای خالی استفاده کن.
مقایسه سریع
- DOM: دسترسی و ویرایش آسان؛ مصرف حافظه بیشتر.
- XML اکسپت: رویدادمحور و سبک؛ کدنویسی هندلر لازم است.
- سیمپل XML: ساده برای خواندن مقادیر؛ مناسب فایل های کوچک.
جمع بندی سریع
- DOM کل سند را درختی می کند.
- ویرایش و جست وجو بسیار راحت است.
- حواست به گره های
#textباشد. - برای فایل های بزرگ، به حافظه دقت کن.