XML و DOM

يجعل مفسر الاوامر الامر سهلاً لقراءة ملفات XML ضمن صفحات PHP .


ماهي لغة DOM

تعتبر لغة DOM لغة معيارية من منظمة الويب العالمية W3C .

تشرح لغة DOM أساسيات التحكم بصفحة HTML و XML .

ان لغة DOM , وهي اختصار Document Object Model نموذج صفحة الكائن , هي منصة و واجهة محايدة لغوية برمجية تساعد البرامج والأكواد على تعديل المحتوى والشكل و تصميم الصفحة بشكل ديناميكي .

تقسم لغة DOM الى ثلاثة أقسام أو مستويات :

  1. Core DOM : النموذج الأساسي لأي بنية صفحة ويب .
  2.  XML DOM : النموذج الأساسي لصفحات XML .
  3.  HTML DOM : النموذج الأساسي لصفحات HTML .

لدراسة المزيد حول لغة DOM يمكنك زيارة دورة XML DOM من مكتبة المعهد .


ماهو المفسر ؟

يستخدم من أجل قراءة و تحديث و إنشاء ومعالجة ملف XML حيث ستحتاج الى مفسر XML .

يوجد نوعان أساسيان من مفسر XML :

  •  المفسر الشجري: يقوم هذا المفسر بتحويل ملف XML الى بنية شجرية حيث تقوم بتحليل الصفحة كاملة كما تقدم صلاحيات لجميع عناصر الصفحة كما في لغة Document Object Model (DOM) .
  •  المفسر الحدثي : يقوم هذا المفسر بعرض صفحة XML كسلسلة من الأحداث و عند حدوث حدث معين سيتم استدعاء كود وظيفي للتعامل معه .

يمكن تعريف المفسر DOM يعتمد على المفسر الشجري .

لاحظ المثال التالي :

<?xml version="1.0" encoding="ISO-8859-1"?>
<from>Jani</from>

يظهر XML DOM في المثال السابق على شكل بنية شجرية :

  • المستوى 1 : صفحة XML
  • المستوى 2 : عنصر جذري <from>
  •  المستوى 3 : عنصر نصي “Jani”

التنصيب

تعتبر الأكواد الوظيفية في مفسر XML جزء من أكواد PHP و لذلك لاتحتاج إلى تنصيبات اضافية لاستخدام تلك الأكواد .


ملف XML

مثال عن ملف XML والذي سيتم استخدامه لاحقاً :

<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>


تحميل و إظهار ملف 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="ISO-8859-1"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

ينشئ المثال السابق كائن في الصفحة ثم يقوم بتحميل ملف XML من خلال الملف note.xml .

ثم نستخدم saveXML() حيث سيحول كود الصفحة الى وسوم يمكن مشاهدتها على المتصفح .


الحلقات من خلال 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 . يقدم مفسر XML DOM كعنصر عادي وان لم تكن مدركاً لهم سيتم توليد أخطاء .