PHP – پارسر XML DOM

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

پارسر XML DOM

پارسر DOM یک پارسر مبتنی بر درخت (tree-based parser) است.

به بخش زیر از یک سند XML توجه کنید:

<?xml version="1.0" encoding="UTF-8"?>
<from>Jani</from>

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

  • سطح 1: سند XML
  • سطح 2: عنصر ریشه: <from>
  • سطح 3: عنصر متنی: “Jani”

نصب

توابع پارسر 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” را انتخاب کنید، خواهید دید:

<?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 را بارگذاری کنیم و از طریق تمام عناصر عنصر <note> حلقه بزنیم:

<?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 این فضاهای خالی را به عنوان عناصر عادی در نظر می‌گیرد و اگر از آن‌ها آگاه نباشید، گاهی اوقات باعث مشکلاتی می‌شوند.

پست های مرتبط

مطالعه این پست ها رو از دست ندین!
JavaScript - تاریخ‌ها (Dates)

JavaScript – تاریخ‌ها (Dates)

آبجکت‌های تاریخ (Date) در جاوااسکریپت آبجکت‌های تاریخ در جاوااسکریپت به ما امکان کار با تاریخ و زمان را می‌دهند....

بیشتر بخوانید
JavaScript - آرایه‌های ثابت (Array Const)

JavaScript – آرایه‌های ثابت (Array Const)

جاوااسکریپت: تعریف آرایه با const در سال 2015، جاوااسکریپت کلمه کلیدی مهمی به نام const را معرفی کرد. این...

بیشتر بخوانید
JavaScript - تکرار آرایه‌ها (Array Iteration)

JavaScript – تکرار آرایه‌ها (Array Iteration)

جاوا اسکریپت: تکرار بر روی آرایه‌ها جاوا اسکریپت روش‌های مختلفی برای تکرار (Iteration) بر روی آرایه‌ها ارائه می‌دهد که...

بیشتر بخوانید

نظرات

سوالات و نظراتتون رو با ما به اشتراک بذارید

برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید.