عقد XML DOM
وفقًا لـ XML DOM ، كل شيء في مستند XML هو عقدة :
- المستند بأكمله عبارة عن عقدة مستند
- كل عنصر XML هو عقدة عنصر
- النص في عناصر XML عبارة عن عقد نصية
- كل سمة هي عقدة سمة
- التعليقات هي عقد تعليق
مثال DOM
انظر إلى ملف XML التالي ( books.xml ):
<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book category="cooking">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="children">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="web">
<title lang="en">XQuery Kick Start</title>
<author>James McGovern</author>
<author>Per Bothner</author>
<author>Kurt Cagle</author>
<author>James Linn</author>
<author>Vaidyanathan Nagarajan</author>
<year>2003</year>
<price>49.99</price>
</book>
<book category="web" cover="paperback">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>
العقدة الجذرية في XML أعلاه تسمى <bookstore>.
يتم تضمين جميع العقد الأخرى في المستند في <bookstore>.
تحتوي العقدة الجذرية <bookstore> على 4 عقد <book>.
تحتوي العقدة الأولى من نوع <book> على العقد الفرعية: <العنوان> و <author> و <السنة> و <السعر>.
تحتوي العقد الفرعية على عقدة نصية واحدة لكل من "Everyday Italian" و "Giada De Laurentiis" و "2005" و "30.00".
يتم تخزين النص دائمًا في عقد نصية
الخطأ الشائع في معالجة DOM هو توقع احتواء عقدة عنصر على نص.
ومع ذلك ، يتم تخزين نص عقدة العنصر في عقدة نصية.
في هذا المثال: <year> 2005 </year> ، تحتوي عقدة العنصر <year> على عقدة نصية بالقيمة "2005".
"2005" ليست قيمة عنصر <year>!
شجرة عقدة XML DOM
يعرض XML DOM مستند XML على أنه هيكل شجرة. يسمى هيكل الشجرة شجرة العقدة.
يمكن الوصول إلى جميع العقد من خلال الشجرة. يمكن تعديل محتوياتها أو حذفها ، كما يمكن إنشاء عناصر جديدة.
تُظهر شجرة العقد مجموعة العقد والوصلات بينها. تبدأ الشجرة من العقدة الجذرية وتتفرع إلى العقد النصية في أدنى مستوى من الشجرة:
تمثل الصورة أعلاه ملف XML books.xml .
عقدة الآباء والأطفال والأشقاء
العقد في شجرة العقد لها علاقة هرمية مع بعضها البعض.
تُستخدم مصطلحات الوالد والطفل والأخوة لوصف العلاقات. العقد الرئيسية لديها أطفال. يُطلق على الأطفال من نفس المستوى إخوة (إخوة أو أخوات).
- في شجرة العقدة ، تسمى العقدة العلوية الجذر
- كل عقدة ، باستثناء الجذر ، لها عقدة أصل واحدة بالضبط
- يمكن أن تحتوي العقدة على أي عدد من الأبناء
- الورقة هي عقدة ليس بها أطفال
- الأشقاء هم عقد مع نفس الوالد
توضح الصورة التالية جزءًا من شجرة العقد والعلاقة بين العقد:
نظرًا لأن بيانات XML منظمة في شكل شجرة ، يمكن اجتيازها دون معرفة الهيكل الدقيق للشجرة ودون معرفة نوع البيانات الموجودة بداخلها.
سوف تتعلم المزيد حول اجتياز شجرة العقدة في فصل لاحق من هذا البرنامج التعليمي.
الطفل الأول - الطفل الأخير
انظر إلى جزء XML التالي:
<bookstore>
<book category="cooking">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
</bookstore>
في XML أعلاه ، عنصر <title> هو أول عنصر تابع لعنصر <book> ، والعنصر <price> هو العنصر الفرعي الأخير لعنصر <book>.
علاوة على ذلك ، فإن عنصر <book> هو العقدة الأصلية لعناصر <العنوان> و <author> و <السنة> و <السعر>.