زيارة العقد في DOM XML

من خلال DOM، يمكنك الوصول إلى كل عقد في مستند XML.

زيارة العقد

يمكنك الوصول إلى العقد بثلاث طرق:

  • من خلال استخدام طريقة getElementsByTagName()
  • من خلال التدوير (المرور) في شجرة العقد
  • من خلال استخدام علاقات العقد في شجرة العقد

getElementsByTagName() طريقة

getElementsByTagName() يعود إلى جميع العناصر التي تحتوي على اسم علامة معين.

النحو

node.getElementsByTagName("tagname");

مثال

في المثال التالي، يعود إلى جميع عناصر <title> تحت x:

x.getElementsByTagName("title");

لاحظ أن المثال السابق يعود فقط إلى عناصر <title> تحت x. إذا كنت ترغب في العودة إلى جميع عناصر <title> في مستند XML، استخدم:

xmlDoc.getElementsByTagName("title");

في هذا السياق،xmlDoc هي نفس المستند (عنصر المستند).

قائمة عناصر DOM

getElementsByTagName() يستعيد هذا النوع قائمة العقدة (قائمة النود). قائمة العقدة هي مجموعة من العقدة.}

x = xmlDoc.getElementsByTagName("title");

يمكنك الوصول إلى عنصر <title> في x عبر الرقم المرجعي. إذا كنت ترغب في الوصول إلى العنصر الثالث <title>، يمكنك كتابة:

y = x[2];

ملاحظة:السلسلة تبدأ من 0.

تجربة شخصية

طول قائمة العقدة DOM

length لتحديد طول قائمة العقدة (عدد العقدة).

يمكنك استخدام الخاصية length استخدام الخاصية

مثال

var x = xmlDoc.getElementsByTagName("title");
for (i = 0; i < x.length; i++) {
  // يمكن كتابة كود معالجة كل عقدة هنا
  }

تجربة شخصية

نوع العقدة

عقدة مستند XML documentElement الخصائص هي العقدة الجذرية.

خصائص العقدة هي nodeName الخصائص هي اسم العقدة.

خصائص العقدة هي nodeType الخصائص هي نوع العقدة.

ستتعلم في الفصل التالي عن خصائص العقدة.

تجربة شخصية

استكشاف العقد

يتم تنفيذ الكود التالي في دورة على فروع العقدة الجذرية (العناصر الابتدائية):

مثال

txt = "";
x = xmlDoc.documentElement.childNodes;
for (i = 0; i < x.length; i++) {
  // معالجة فقط عناصر النود (نوع 1)
  if (x[i].nodeType == 1) {
    txt += x[i].nodeName + "<br>";
  }
}

تجربة شخصية

توضيح المثال:

  1. افترض أنك قد قمت بتحميل "books.xml" تحميل إلى xmlDoc
  2. الحصول على فروع العقدة الجذرية (xmlDoc)
  3. تحقق من نوع كل عقدة فرعية. إذا كان نوع العقدة هو "1"، فإنها عقدة عنصر
  4. إذا كانت العقدة عناصر، فإنها تخرج اسم العقدة

علاقات التوجيه

يتم تنفيذ الكود التالي باستخدام علاقات العقد في شجرة العقدة:

مثال

x = xmlDoc.getElementsByTagName("book")[0];
xlen = x.childNodes.length;
y = x.firstChild;
txt = "";
for (i = 0; i < xlen; i++) {
  // فقط معالجة عناصر النود (نوع 1)
  if (y.nodeType == 1) {
    txt += y.nodeName + "<br>";
  }
  y = y.nextSibling;
}

تجربة شخصية

توضيح المثال:

  1. افترض أنك قد قمت بتحميل "books.xml" تحميل إلى xmlDoc
  2. الحصول على فروع العنصر الأول من book
  3. تعيين "y" إلى العنصر الأول للعنصر book الأول
  4. للعقدة الفرعية كلية (من العقدة الفرعية الأولى "y" (بدءًا من):
  5. تحقق من نوع كل عقدة فرعية. إذا كان نوع العقدة هو "1"، فإنه هو عقدة عنصر
  6. إذا كان العنصر هو عقدة، فإنه يجب طباعة اسم العنصر
  7. تعيين "yتعيين "y" إلى العنصر التالي من نفس المستوى، ثم تشغيل الدورة مرة أخرى