تجزیه گرهای XML (XML Parsers)
«ایکس اِم اِل (XML)» زبانی برای ساختاربندی داده هاست. مثلا خوراک «آراس اس (RSS)» با آن ساخته می شود. ظاهرش شبیه HTML است؛ اما برچسب ها را خودت تعریف می کنی.
تجزیه گر XML چیست؟
«تجزیه گر (Parser)» ابزاری برای خواندن و دستکاری سند XML است. با آن می توانی نودها را بخوانی، بسازی، ویرایش کنی، یا حذف کنی.
انواع تجزیه گر در PHP
در PHP دو دسته اصلی داریم: «درختی (Tree-Based)» و «رویدادی (Event-Based)». هر کدام روش و کاربرد خودشان را دارند.
تجزیه گرهای درختی (Tree-Based)
کل سند در حافظه نگهداری می شود و به ساختار «درخت (DOM)» تبدیل می گردد. دسترسی به همه نودها ساده است؛ اما برای سندهای بزرگ، حافظه زیادی می خواهد.
- SimpleXML
- DOM
نکته: برای سندهای کوچک عالی است؛ ولی روی سندهای بزرگ کند و پرمصرف می شود.
تجزیه گرهای رویدادی (Event-Based)
کل سند در حافظه نمی ماند. نودها را «جریان وار (Streaming)» می خواند. وقتی جلو می روی، نود قبلی کنار گذاشته می شود. بنابراین سریع تر و کم حافظه تر است.
- XMLReader
- XML Expat Parser
هشدار: چون نودهای قبلی دور ریخته می شوند، برای مراجعه عقب گرد باید از ساختارهای کمکی استفاده کنی.
کِی کدام را انتخاب کنیم؟
سند کوچک داری؟ درختی بهتر است. سند بزرگ یا استریم داری؟ رویدادی منطقی است. سرعت و حافظه برایت مهم است؟ رویدادی انتخاب بهتری است.
گام های عملی انتخاب
- اندازه سند را برآورد کن.
- نیاز به دسترسی تصادفی داری یا خطی؟
- بر اساس نیاز، درختی یا رویدادی را برگزین.
ادامه مسیر
- محدودیت نتایج (MySQL Limit Data) برای صفحه بندی نتایج پایگاه داده.
- خواندن با SimpleXML برای شروع ساده با XML در PHP.
جمع بندی سریع
- XML زبان ساختاربندی داده است.
- Parser برای خواندن و تغییر XML ضروری است.
- Tree-Based ساده اما پرمصرف است.
- Event-Based سریع و کم حافظه است.