قائمة العناصر DOM XML
- الصفحة السابقة معلومات العقد DOM
- الصفحة التالية استكشاف العقد DOM
قائمة العناصر يتم إرجاعها بواسطة طريقة getElementsByTagName() وخصائص childNodes.
مثال
في المثال التالي، يتم استخدام ملف XML books.xml.
الوظيفة loadXMLDoc()، تقع في JavaScript الخارجي، تستخدم لتحميل ملف XML.
- الحصول على النص من العنصر الأول من <title>
- في هذا المثال، يتم استخدام طريقة getElementsByTagName() للحصول على النص من العنصر الأول من <title> في ملف "books.xml".
- الدوران على العناصر باستخدام خصائص length
- في هذا المثال، يتم استخدام قائمة العناصر وخصائص length للدوران على جميع عناصر <title> في ملف "books.xml".
- الحصول على خصائص العنصر
- في هذا المثال، يتم استخدام قائمة الخصائص للحصول على خصائص العنصر الأول من <title> في ملف "books.xml".
قائمة العناصر DOM
عند استخدام خصائص أو طرق مثل childNodes أو getElementsByTagName()، يتم إرجاع جسم NodeList.
يُمثل جسم NodeList قائمة العناصر، بنفس الترتيب الذي يظهر فيه في XML.
استخدام المؤشرات التي تبدأ من 0 لاستدعاء العناصر في قائمة العناصر.
تمثل هذه الصورة ""}}books.xml"قائمة العقد لعناصر <title>:

قطعة من الرموز التالية باستخدام loadXMLDoc() يُحمّل "books.xml" إلى xmlDoc ويُرجع "books.xml"قائمة العقد لأحد عناصر title:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("title");
بعد تنفيذ الجملة السابقة، x يصبح NodeList.
استخدام هذا المقطع من الكود لاستخراج النص من العقد الأول في قائمة العقد x:
txt=x[0].childNodes[0].nodeValue;
بعد تنفيذ الجملة السابقة، txt = "الإيطالية اليومية".
طول قائمة العقد
سيبقى عنصر NodeList محدثًا نفسه. إذا تم حذف أو إضافة عنصر، فإن القائمة ستجدد تلقائيًا.
خصائص طول قائمة العقد هي عدد العقد في القائمة.
قطعة من الرموز التالية باستخدام loadXMLDoc() تعيين "books.xml"يُحمّل xmlDoc، ويُرجع "عدد عناصر <title> في "books.xml":
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName('title').length;
بعد تنفيذ الجملة السابقة، x = 4.
يمكن استخدام طول قائمة العقد لتحسين جميع العناصر في القائمة.
استخدام خاصية length في هذا المقطع من الكود لاستكشاف قائمة عناصر <title>:
xmlDoc=loadXMLDoc("books.xml"); //سيحمل المتغير x قائمة العقد x=xmlDoc.getElementsByTagName('title'); للبدء (i=0;i<x.length;i++) { document.write(x[i].childNodes[0].nodeValue); document.write("<br />"); }
الإخراج:
هاري بوتر الإيطالية اليومية XQuery Kick Start تعلم XML
شرح المثال:
- من خلال استخدام loadXMLDoc() تعيين "books.xml"يُحمّل xmlDoc
- يُضبط المتغير x للحفظ قائمة العقد لجميع عناصر title.
- يُخرج قيمة النص من جميع عناصر <title>.
قائمة الخاصية DOM (Named Node Map)
يُرجع الخاصية attributes لعدد العقد العناصر الخاصية لقائمة العقد.
يُسمى هذا بـ Named Node Map، باستثناء بعض الاختلافات في الطرق والخصائص، فهو مشابه لقائمة العقد.
قائمة الخاصية ستبقى محدثة نفسها. إذا تم حذف أو إضافة خاصية، فإن هذه القائمة ستجدد تلقائيًا.
قطعة من الرموز التالية باستخدام loadXMLDoc() تحميل "books.xml" إلى xmlDoc، ومن ثم من "books.xmlالاولى في "" عناصر <book> وتعيينها كقائمة من عقدة الخاصية:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName('book')[0].attributes;
بعد تنفيذ الكود أعلاه، يكون x.length يساوي عدد الخصائص، يمكن استخدام x.getNamedItem() لاسترجاع عقدة الخاصية.
قطعة من الرموز التالية تعرض قيمة الخاصية "category" للـ book وعدد خصائصها:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("book")[0].attributes; document.write(x.getNamedItem("category").nodeValue); document.write("<br />" + x.length);
الإخراج:
الأطفال 1
شرح المثال:
- من خلال استخدام loadXMLDoc() تعيين "books.xml"تحميل xmlDoc"
- تعيين المتغير x لقائمة خصائص جميع العناصر <book> الأولى
- إرجاع القيمة من خاصية "category"
- إرجاع طول قائمة الخصائص
- الصفحة السابقة معلومات العقد DOM
- الصفحة التالية استكشاف العقد DOM