أحدث البرامج التعليمية وتطوير الشبكة
 

XML DOM - الوصول إلى العقد


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


انها محاولة لنفسك - أمثلة

استخدام الأمثلة التالية في ملف XML books.xml .

الوصول إلى عقدة باستخدام الرقم القياسي في قائمة عقدة
استخدام getElementsByTagName() طريقة للحصول على ثالث <title> عنصر في "books.xml"

حلقة خلال العقد باستخدام الخاصية طول
استخدام الخاصية طول يتكرر خلال كل <title> العناصر في "books.xml"

مشاهدة نوع عقدة من عنصر
استخدام الخاصية NodeType للحصول على نوع عقدة من العنصر الجذر في "books.xml" .

حلقة خلال العقد عنصر
استخدام الخاصية NodeType إلى العقد عنصر الوحيدة العملية في "books.xml" .

حلقة خلال العقد عنصر باستخدام العلاقات العقدة
استخدام الخاصية NodeType والممتلكات nextSibling لمعالجة العقد عنصر في "books.xml" .

×

رأس


الحصول على العقد

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

1. باستخدام getElementsByTagName() طريقة

2. عن طريق حلقات من خلال (traversing) شجرة العقد.

3. من خلال التنقل في شجرة العقدة، باستخدام العلاقات العقدة.


و getElementsByTagName() الطريقة

getElementsByTagName () بإرجاع كافة العناصر مع اسم علامة المحدد.

بناء الجملة

node.getElementsByTagName("tagname");

مثال

يقوم المثال التالي بإرجاع كافة <title> العناصر تحت العنصر العاشر:

x.getElementsByTagName("title");

لاحظ أن المثال أعلاه عوائد الوحيدة <title> العناصر ضمن عقدة س. للعودة عن <title> العناصر في استخدام مستند XML:

xmlDoc.getElementsByTagName("title");

حيث xmlDoc هو الوثيقة نفسها (document node) .


قائمة عقدة DOM

و getElementsByTagName() بإرجاع طريقة قائمة عقدة. قائمة العقدة هي مجموعة من العقد.

x = xmlDoc.getElementsByTagName("title");

و <title> العناصر في العاشر يمكن الوصول إليها عن طريق الرقم القياسي. للوصول إلى الثالث <title> يمكنك كتابة ::

y = x[2];

Note: يبدأ مؤشر السوق عند مستوى 0.

سوف تتعلم المزيد حول قوائم عقدة في فصل لاحق من هذا البرنامج التعليمي.


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

تحدد خاصية طول طول قائمة عقدة (the number of nodes) .

يمكن لك حلقة من خلال قائمة عقدة باستخدام الخاصية طول:

مثال

var x = xmlDoc.getElementsByTagName("title");

for (i = 0; i <x.length; i++) {
  // do something for each node
  }
انها محاولة لنفسك »

أنواع العقدة

و documentElement ممتلكات وثيقة XML هي عقدة الجذر.

و nodeName ممتلكات عقدة هو اسم العقدة.

و nodeType الملكية من عقدة هي نوع من العقدة.

سوف تتعلم المزيد عن خصائص عقدة في الفصل التالي من هذا البرنامج التعليمي.

انها محاولة لنفسك


العبور العقد

حلقات التعليمة البرمجية التالية خلال العقد التابعة، التي هي أيضا العقد عنصر من عقدة الجذر:

مثال

txt = "";
x = xmlDoc.documentElement.childNodes;

for (i = 0; i <x.length; i++) {
  // Process only element nodes (type 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++) {
  // Process only element nodes (type 1)
  if (y.nodeType == 1) {
    txt += y.nodeName + "<br>";
  }
  y = y.nextSibling;
}
انها محاولة لنفسك »

وأوضح سبيل المثال:

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