DOM XML PHP

پردازشگر DOM داخلی امکان استفاده از پردازش مستندات XML در PHP را فراهم می‌کند.

DOM چیست؟

W3C DOM مجموعه استاندارد از اشیاء برای مستندات HTML و XML و رابط‌های استاندارد برای دسترسی و عملیات بر روی این مستندات را ارائه می‌دهد.

W3C DOM به بخش‌های مختلف (Core, XML و HTML) و سطح‌های مختلف (DOM Level 1/2/3) تقسیم شده است:

  • Core DOM - مجموعه استاندارد از اشیاء برای هر مستند ساختاریافته تعریف می‌کند
  • XML DOM - مجموعه استاندارد از اشیاء برای مستندات XML تعریف می‌کند
  • HTML DOM - مجموعه استاندارد از اشیاء برای مستندات HTML تعریف می‌کند

اگر می‌خواهید اطلاعات بیشتری در مورد XML DOM یاد بگیرید، لطفاً به وب‌سایت ما آموزش XML DOM

پردازش XML

برای خواندن و به‌روزرسانی - ایجاد و پردازش یک مستند XML، شما نیاز به پردازشگر XML دارید.

دو نوع اساسی از پردازشگر XML وجود دارد:

  • پردازشگر بر اساس درخت:این پردازشگر مستند XML را به ساختار درختی تبدیل می‌کند. آنالیز کامل مستند را انجام می‌دهد و API‌هایی برای دسترسی به عناصر درخت ارائه می‌دهد، مانند مدل مستند (DOM).
  • پردازشگر بر اساس رویداد:مستند XML را به عنوان یک مجموعه از رویدادها در نظر می‌گیرد. هنگامی که رویدادی خاص رخ می‌دهد، پردازشگر توابعی را برای پردازش آن فراخوانی می‌کند.

پردازشگر DOM بر اساس درخت است.

لطفاً بخش زیر از مستند XML را مشاهده کنید:

<?xml version="1.0" encoding="ISO-8859-1"?>
<from>جان</from>

DOM XML XML را به عنوان یک ساختار درختی می‌بیند:

  • سطح 1: مستند XML
  • سطح 2: عنصر ریشه: <from>
  • سطح 3: عناصر متن: "جان"

نصب

توابع پردازشگر DOM XML بخشی از هسته PHP هستند. نیازی به نصب نیست تا از این توابع استفاده کنید.

فایل XML

در مثال ما از فایل زیر استفاده خواهیم کرد:

<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>جورج</to>
<from>جان</from>
<heading>یادآوری</heading>
<body>نفت بکنید جلسه را!
</note>

بارگذاری و چاپ XML

ما باید پردازشگر XML را инициالایز کنیم، XML را بارگذاری کنیم و آن را چاپ کنیم:

مثال

<?php
$xmlDoc = new DOMDocument();
$xmlDoc->load("note.xml");
print $xmlDoc->saveXML();
?>

خروجی کد بالا:

جورج جان یادآوری نفت بکنید جلسه را!

اگر شما کد منبع زیر را در پنجره مرورگر خود مشاهده کنید، خواهید دید که:

<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>جورج</to>
<from>جان</from>
<heading>یادآوری</heading>
<body>نفت بکنید جلسه را!
</note>

در مثال بالا، یک DOMDocument-Object ایجاد شده و XML موجود در "note.xml" به این مستند وارد شده است.

функشنامۀ saveXML() محتوای مستند XML داخلی را در یک رشته قرار می‌دهد، بنابراین می‌توانیم آن را چاپ کنیم.

cycle XML

ما باید پردازش‌گر XML را ابتدا initializes، XML را بارگذاری کنیم و تمام عناصر <note> را در یک cycle بررسی کنیم:

مثال

<?php
$xmlDoc = new DOMDocument();
$xmlDoc->load("note.xml");
$x = $xmlDoc->documentElement;
foreach ($x->childNodes AS $item)
  {
  print $item->nodeName . " = " . $item->nodeValue . "<br />";
  }
?>

خروجی کد بالا:

#text = 
to = جرج
#text = 
from = جان
#text = 
heading = یادآوری
#text = 
body = فراموش نکنید جلسه را!
#text =

در مثال بالا، شما متوجه شدید که بین هر عناصر فضاهای خالی وجود دارد.

وقتی XML تولید می‌شود، معمولاً فضاهای خالی بین گره‌ها وجود دارد. پردازش‌گر XML DOM آن‌ها را به عنوان عناصر معمولی در نظر می‌گیرد و اگر به آن‌ها توجه نکنید، گاهی اوقات مشکلاتی ایجاد می‌شود.

اگر می‌خواهید اطلاعات بیشتری در مورد XML DOM یاد بگیرید، لطفاً به وب‌سایت ما آموزش XML DOM