مبدل XML DOM در PHP

از ویکی‌کد
پرش به ناوبری پرش به جستجو
Main Page Tutorial
Php-menu.png
موارد آموزشی
فرم‌ها در PHP
PHP پیشرفته
شیء گرایی در PHP
پایگاه داده MySQL
XML در PHP
۱مبدل XML
۲مبدل SimpleXML
۳دریافت اطلاعات SimpleXML
۴مبدل XML Expat
۵XML DOM
AJAX در PHP
مثال‌های PHP
مرجع PHP

مبدل پیش‌فرض DOM این امر را ممکن می‌سازد که اسناد XML را در PHP پردازش کنیم. [۱]

مبدل XML DOM

مبدل DOM یک مبدل بر پایه نمودار درختی است.

به تکه کد سند XML زیر نگاهی بیندازید:

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

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

  • مرحله ۱: سند XML
  • مرحله ۲: عنصر ریشه: <from>
  • مرحله ۳: عنصر متنی: “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 را بارگذاری کنیم، و آن را در خروجی چاپ کنیم:

1 <?php
2 $xmlDoc = new DOMDocument();
3 $xmlDoc->load("note.xml");
4 
5 print $xmlDoc->saveXML();
6 ?>

خروجی کد زیر به صورت زیر خواهد بود:

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 را بارگذاری کنیم، و درون تمامی عناصر عنصر <note> پیمایش کنیم:

1 <?php
2 $xmlDoc = new DOMDocument();
3 $xmlDoc->load("note.xml");
4 
5 $x = $xmlDoc->documentElement;
6 foreach ($x->childNodes AS $item) {
7   print $item->nodeName . " = " . $item->nodeValue . "<br>";
8 }
9 ?>

خروجی کد بالا به صورت زیر خواهد بود:

#text =
to = Tove
#text =
from = Jani
#text =
heading = Reminder
#text =
body = Don't forget me this weekend!
#text =

در مثال بالا شما می‌بینید که گره‌های متنی خالی بین هر عنصر وجود دارد.

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

اگر شما می‌خواهید که در مورد XML DOM مطالب بیشتری را بیاموزید، آموزش XML را مشاهده کنید.


منابع آموزشی