دروس XML

الصفحة الرئيسية لـ XML مقدمة XML كيفية استخدام XML شجرة XML بناء جملة XML عناصر XML سمات XML مساحات أسماء XML عرض XML طلب XML HttpRequest محلل XML XML DOM XML XPath XML XSLT XML XQuery XML XLink مدقق XML XML DTD مخطط XML خادم XML أمثلة XML مسابقة XML شهادة XML

XML AJAX

مقدمة أجاكس أجاكس XMLHttp طلب AJAX استجابة AJAX ملف AJAX XML أجاكس بي إتش بي أجاكس آسيا والمحيط الهادئ قاعدة بيانات أجاكس تطبيقات أجاكس أمثلة AJAX

XML DOM

مقدمة حول DOM عقد DOM الوصول إلى DOM معلومات عقدة DOM قائمة عقدة DOM عبور DOM التنقل في DOM DOM احصل على القيم DOM تغيير العقد DOM إزالة العقد استبدل DOM Nodes DOM إنشاء العقد DOM أضف العقد عقد استنساخ DOM أمثلة DOM

دروس XPath

مقدمة XPath عقد XPath بناء جملة XPath محاور XPath مشغلي XPath أمثلة XPath

XSLT التعليمي

XSLT مقدمة لغات XSL تحويل XSLT XSLT <template> XSLT <قيمة> XSLT <للجميع> XSLT <ترتيب> XSLT <if> XSLT <اختر> XSLT تطبيق XSLT على العميل XSLT على الخادم XSLT تحرير XML أمثلة XSLT

XQuery تعليمي

XQuery مقدمة مثال XQuery XQuery FLWOR XQuery HTML شروط XQuery بناء جملة XQuery XQuery إضافة XQuery حدد وظائف XQuery

XML DTD

مقدمة DTD مكعبات بناء DTD عناصر DTD سمات DTD عناصر DTD مقابل Attr كيانات DTD أمثلة DTD

مخطط XSD

مقدمة XSD XSD كيف XSD <المخطط عناصر XSD سمات XSD قيود XSD

مجمع XSD

عناصر XSD XSD فارغ عناصر XSD فقط نص XSD فقط XSD مختلط مؤشرات XSD XSD <أي> XSD <أي سمة> تبديل XSD مثال XSD

بيانات XSD

سلسلة XSD تاريخ XSD XSD الرقمية XSD متفرقات مرجع XSD

خدمات الويب

خدمات XML XML WSDL صابون XML XML RDF XML RSS

مراجع

أنواع عقدة DOM عقدة DOM قائمة عقدة DOM DOM NamedNodeMap مستند DOM عنصر DOM سمة DOM نص DOM DOM CDATA تعليق DOM DOM XMLHttpRequest محلل DOM عناصر XSLT وظائف XSLT / XPath

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


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


جربها بنفسك - أمثلة

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


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


، استخدم خاصية length للتنقل بين جميع عناصر <title> في "books.xml"


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


استخدم الخاصية nodeType لمعالجة عُقد العناصر فقط في "books.xml".


استخدم خاصية nodeType و nextSibling لمعالجة عُقد العناصر في "books.xml".

×

رأس


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

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

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

2. عن طريق التكرار خلال (عبور) شجرة العقد.

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


طريقة 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++) {
  // 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. لكل عقدة فرعية (بدءًا من العقدة الفرعية الأولى "y"):
  5. تحقق من نوع العقدة. إذا كان نوع العقدة هو "1" فهي عقدة عنصر
  6. قم بإخراج اسم العقدة إذا كانت عقدة عنصر
  7. قم بتعيين المتغير "y" ليكون العقدة الشقيقة التالية ، وقم بتشغيل الحلقة مرة أخرى