استقبال عقد XML DOM
- الصفحة السابقة خصائص وطرق DOM
- الصفحة التالية معلومات عن عقد DOM
من خلال DOM، يمكنك الوصول إلى كل عقدة في مستند XML.
مثال
في المثال التالي، يتم استخدام ملف XML books.xml.
الوظيفة loadXMLDoc()، الموجودة في JavaScript الخارجي، لتحميل ملف XML.
- استخدام الرقم المرجعي في قائمة العقدة للوصول إلى العقدة
- في هذا المثال، يتم استخدام getElementsByTagname() للاستيلاء على العنصر الثالث <title> في "books.xml".
- استخدام خاصية length لتدوير العقد
- في هذا المثال، يتم استخدام خاصية length لجعل دورة جميع عناصر <title> في "books.xml".
- عرض نوع عقدة العنصر
- في هذا المثال، يتم استخدام خاصية nodeType للحصول على نوع العقدة للعنصر الجذر في "books.xml".
- جعل دورة العناصر
- في هذا المثال، يتم استخدام خاصية nodeType لتعامل عناصر "books.xml".
- استخدام علاقات العقدة لجعل دورة العناصر
- في هذا المثال، يتم استخدام خاصية nodeType وproperty nextSibling لتعامل عناصر "books.xml".
زيارة العقدة
يمكنك الوصول إلى العقدة عبر ثلاث طرق:
- من خلال استخدام getElementsByTagName()
- من خلال استخدامه دورة (تدوير) شجرة العقد
- من خلال استخدام علاقات العقد في شجرة العقد
طريقة getElementsByTagName()
يستخدم getElementsByTagName() ليعيد جميع العناصر التي تحتوي على اسم العلامة المحدد.
النحو
النود.getElementsByTagName("tagname");
مثال
يستخدم المثال التالي
x.getElementsByTagName("title");
لاحظ أن المثال السابق يعود فقط إلى عناصر <title> تحت x. إذا كنت ترغب في العثور على جميع عناصر <title> في المستند XML، استخدم:
xmlDoc.getElementsByTagName("title");
في هذا السياق، xmlDoc هو المستند نفسه (عقدة المستند).
قائمة العقدة DOM
getElementsByTagName() لتحويل قائمة العقدة (قائمة العقدة). قائمة العقدة هي مجموعة من العقدة.
يستخدم الكود التالي loadXMLDoc() ضع "books.xml"تحميل xmlDoc" في، ثم حفظ قائمة العناصر <title> في متغير x:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("title");
يمكنك الوصول إلى عناصر <title> في x باستخدام المؤشر. لتحديد الثالثة <title>، يمكنك كتابة:
y=x[2];
ملاحظة:السحابة تبدأ من 0.
ستعلم المزيد عن قائمة العقدة في الفصول اللاحقة من هذا الدليل.
طول قائمة العقدة DOM
تعريف خاصية length طول قائمة العقدة (أي عدد العقدة).
يمكنك استخدام خاصية length لاستخدام قائمة العقدة:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("title"); for (i=0;i<x.length;i++) { document.write(x[i].childNodes[0].nodeValue); document.write("<br />"); }
مثال التوضيح:
- استخدام loadXMLDoc() ضع "books.xml"تحميل xmlDoc
- الحصول على جميع عناصر <title>
- إخراج قيمة كل عنصر <title> من النص
نوع العقدة
مستند XML documentElement الخصائص هي العقدة الجذرية.
خصائص العقدة nodeName الخصائص هي اسم العقدة.
خصائص العقدة nodeType الخصائص هي نوع العقدة.
ستتعلم المزيد عن خصائص العقدة في الفصل التالي من هذا الدليل.
استكشاف العقدة
أعلاه كود ي循环 من خلال أطفال العقدة الجذرية، وهي عناصر:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.documentElement.childNodes; for (i=0;i<x.length;i++) { إذا (x[i].nodeType==1) {//معالجة فقط عقد العناصر (نوع 1) document.write(x[i].nodeName); document.write("<br />"); } }
مثال التوضيح:
- من خلال استخدام loadXMLDoc() ضع "books.xml"تحميل xmlDoc"
- الحصول على أطفال العقدة الجذرية
- تحقق من نوع كل عقدة فرعية. إذا كان نوع العقدة هو "1"، فإنها عقدة عنصر
- إذا كان العقد عنصرًا، فإنه يتم إخراج اسم العقد
استخدام علاقات العقد للتنقل
يتم من خلال الكود التالي استخدامه لاستخدام علاقات العقد للتنقل في شجرة العقد:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("book")[0].childNodes; y=xmlDoc.getElementsByTagName("book")[0].firstChild; for (i=0;i<x.length;i++) { if (y.nodeType==1) {//معالجة فقط عقد العناصر (نوع 1) document.write(y.nodeName + "<br />"); } y=y.nextSibling; }
- من خلال استخدام loadXMLDoc() ضع "books.xml"تحميل xmlDoc"
- الحصول على النقطة الفرعية الأولى للعنصر "book"
- ضع "y" كمتغير للنقطة الفرعية الأولى للعنصر "book"
- تقديم كل عقد فرعي ونوع العقد، إذا كان النوع هو "1"، فإنه هو عقد عنصر
- إذا كان العقد عنصرًا، فإنه يتم إخراج اسم العقد
- ضع "y" كمتغير للنقطة الجانبية التالية، ثم أعد تشغيل الدورة
- الصفحة السابقة خصائص وطرق DOM
- الصفحة التالية معلومات عن عقد DOM