XML DOM أضف العقد
جربها بنفسك - أمثلة
تستخدم الأمثلة أدناه ملف XML books.xml .
يستخدم هذا المثال appendChild () لإضافة عقدة فرعية إلى عقدة موجودة.
فرعية محددة يستخدم هذا المثال insertBefore () لإدراج عقدة قبل عقدة فرعية محددة.
يستخدم هذا المثال الأسلوب setAttribute () لإضافة سمة جديدة.
يستخدم هذا المثال insertData () لإدراج البيانات في عقدة نصية موجودة.
إضافة عقدة - appendChild ()
يضيف الأسلوب appendChild () عقدة فرعية إلى عقدة موجودة.
تتم إضافة (إلحاق) العقدة الجديدة بعد أي عقد فرعية موجودة.
ملاحظة: استخدم insertBefore () إذا كان موضع العقدة مهمًا.
يُنشئ جزء الكود هذا عنصرًا (<edition>) ويضيفه بعد العنصر الفرعي الأخير من عنصر <book> الأول:
مثال
newEle = xmlDoc.createElement("edition");
xmlDoc.getElementsByTagName("book")[0].appendChild(newEle);
شرح المثال:
- افترض أنه تم تحميل " books.xml " في xmlDoc
- إنشاء عقدة جديدة <edition>
- قم بإلحاق العقدة بأول عنصر <book>
جزء الكود هذا يفعل نفس الشيء كما هو مذكور أعلاه ، لكن العنصر الجديد يضاف بقيمة:
مثال
newEle = xmlDoc.createElement("edition");
newText=xmlDoc.createTextNode("first");
newEle.appendChild(newText);
xmlDoc.getElementsByTagName("book")[0].appendChild(newEle);
شرح المثال:
- افترض أنه تم تحميل " books.xml " في xmlDoc
- إنشاء عقدة جديدة <edition>
- إنشاء عقدة نصية جديدة "أولاً"
- إلحاق عقدة النص بالعقدة <edition>
- إلحاق العقدة <addition> بالعنصر <book>
أدخل عقدة - insertBefore ()
يقوم أسلوب insertBefore () بإدراج عقدة قبل عقدة فرعية محددة.
هذه الطريقة مفيدة عندما يكون موضع العقدة المضافة مهمًا:
مثال
newNode = xmlDoc.createElement("book");
x = xmlDoc.documentElement;
y = xmlDoc.getElementsByTagName("book")[3];
x.insertBefore(newNode,y);
شرح المثال:
- افترض أنه تم تحميل " books.xml " في xmlDoc
- قم بإنشاء عقدة عنصر جديدة <book>
- أدخل العقدة الجديدة أمام آخر عقدة عنصر <book>
إذا كانت المعلمة الثانية لـ insertBefore () خالية ، فستتم إضافة العقدة الجديدة بعد آخر عقدة فرعية موجودة.
سيقوم كل من x.insertBefore (newNode، null) و x.appendChild (newNode) بإلحاق عقدة فرعية جديدة بـ x.
أضف سمة جديدة
يعين أسلوب setAttribute () قيمة السمة.
مثال
xmlDoc.getElementsByTagName('book')[0].setAttribute("edition","first");
شرح المثال:
- افترض أنه تم تحميل "books.xml" في xmlDoc
- عيّن قيمة السمة "edition" على "first" لأول عنصر <book>
لا توجد طريقة تسمى add Attribute ()
ستقوم setAttribute () بإنشاء سمة جديدة إذا كانت السمة غير موجودة.
ملاحظة: إذا كانت السمة موجودة بالفعل ، فستستبدل طريقة setAttribute () القيمة الحالية.
إضافة نص إلى عقدة نص - insertData ()
تقوم طريقة insertData () بإدراج البيانات في عقدة نصية موجودة.
الأسلوب insertData () له معلمتان:
- الإزاحة - من أين تبدأ إدخال الأحرف (يبدأ من الصفر)
- السلسلة - السلسلة المطلوب إدراجها
سيضيف جزء التعليمات البرمجية التالي "سهل" إلى العقدة النصية لعنصر <title> الأول من XML المحمَّل:
مثال
xmlDoc.getElementsByTagName("title")[0].childNodes[0].insertData(0,"Easy ");