ایجاد نودهای DOM XML

پیشنهاد درس:

ایجاد گره عنصر جدید createElement()

مثال 1

مетод یک گره عنصر جدید ایجاد می‌کند:
newElement = xmlDoc.createElement("edition");

تست کنید

توضیح مثال:

  1. فرض کنید books.xml به درون xmlDoc در
  2. xmlDoc.getElementsByTagName("book")[0].appendChild(newElement);
  3. یک گره عنصر جدید <edition> ایجاد می‌کند

مثال 2

این گره عنصر به اولین عنصر <book> اضافه می‌شود

برای (i = 0; i < xLen; i++) { 
    newEle = xmlDoc.createElement("edition");
    newText = xmlDoc.createTextNode("نسخه‌ی اول");
    newEle.appendChild(newText);
    x[i].appendChild(newEle);
}

تست کنید

فرض کنید books.xml به

تقسیم بندی و به همه عناصر <book> یک عنصر اضافه می‌کند: createAttribute()

مثال 1

تقسیم بندی همه عناصر <title> و افزودن گره ویژگی جدید:
برای ایجاد گره ویژگی جدید استفاده می‌شود:
newAtt.nodeValue = "first edition";

تست کنید

توضیح مثال:

  1. xmlDoc.getElementsByTagName("title")[0].setAttributeNode(newAtt); xmlDoc در
  2. فرض کنید books.xml به "edition"
  3. ایجاد گره ویژگی جدید "first"
  4. مقدار این گره ویژگی تنظیم می‌شود به

مثال 2

این گره ویژگی جدید به اولین عنصر <title> اضافه می‌شود

برای (i = 0; i < xLen; i++) { 
    تقسیم بندی همه عناصر <title> و افزودن گره ویژگی جدید:
    newAtt = xmlDoc.createAttribute("edition");
    newAtt.value = "first edition";
}

تست کنید

x[i].setAttributeNode(newAtt);

اگر این ویژگی وجود دارد، آن را با ویژگی جدید جایگزین می‌کند.

با استفاده از setAttribute() ویژگی ایجاد می‌شود به دلیل setAttribute()

مثال 1

مетод در صورت عدم وجود ویژگی جدید، ویژگی جدیدی ایجاد می‌کند، بنابراین می‌توان از آن برای ایجاد ویژگی جدید نیز استفاده کرد.

تست کنید

توضیح مثال:

  1. فرض کنید books.xml به درون xmlDoc در
  2. اولین عنصر <book> xmlDoc.getElementsByTagName('book')[0].setAttribute("edition","first"); "edition" مقدار ویژگی تنظیم می‌شود به "first"

مثال 2

تقسیم بندی همه عناصر <title> و افزودن ویژگی جدید:

برای(i = 0; i < x.length; i++) {
    x[i].setAttribute("edition", "first edition");
}

تست کنید

ایجاد گره متن

createTextNode() مетод ایجاد یک گره متن جدید:

مثال 1

newEle = xmlDoc.createElement("edition");
newText = xmlDoc.createTextNode("first");
newEle.appendChild(newText);
xmlDoc.getElementsByTagName("book")[0].appendChild(newEle);

تست کنید

توضیح مثال:

  1. فرض کنید books.xml به درون xmlDoc در
  2. ایجاد عناصر نود‌های جدید <edition>
  3. ایجاد نود‌های متنی جدید که شامل متنی است "first"
  4. این نود‌های متنی جدید را به عناصر نود‌های جدید اضافه می‌کنیم
  5. این عناصر نود‌های جدید را به اولین عناصر <book> اضافه می‌کنیم

مثال 2

این عناصر نود‌های متنی به همه‌ی عناصر <book> اضافه می‌شود:

برای (i = 0; i < xLen; i++) { 
    newEle = xmlDoc.createElement("edition");
    newText = xmlDoc.createTextNode("نسخه‌ی اول");
    newEle.appendChild(newText);
    x[i].appendChild(newEle);
}

تست کنید

ایجاد بخش CDATA

createCDATASection() این روش نود‌های بخش CDATA جدید را ایجاد می‌کند.

مثال 1

newCDATA = xmlDoc.createCDATASection("جدید سال ویژه & تخفیف محدود");
xmlDoc.getElementsByTagName("book")[0].appendChild(newCDATA);

تست کنید

توضیح مثال:

  1. فرض کنید books.xml به درون xmlDoc در
  2. ایجاد نود‌های بخش CDATA جدید
  3. این نود‌های CDATA جدید را به اولین عناصر <book> اضافه می‌کنیم

مثال 2

دوره‌ی تکراری و به همه‌ی عناصر <book> بخش‌های CDATA اضافه می‌شود:

x = xmlDoc.getElementsByTagName("book");
xLen = x.length;
newtext = "جدید سال ویژه & تخفیف محدود";
برای (i = 0; i < xLen; i++) { 
    newCDATA = xmlDoc.createCDATASection(newtext);
    x[i].appendChild(newCDATA);
}

تست کنید

ایجاد نود‌های توضیحی

createComment() این روش نود‌های توضیحی جدید را ایجاد می‌کند.

مثال 1

newComment = xmlDoc.createComment("تدوین مجدد در فوریه 2024");
xmlDoc.getElementsByTagName("book")[0].appendChild(newComment);

تست کنید

توضیح مثال:

  1. فرض کنید books.xml به درون xmlDoc در
  2. ایجاد نود‌های توضیحی جدید
  3. این نود‌های توضیحی جدید را به اولین عناصر <book> اضافه می‌کنیم

مثال 2

دوره‌ی تکراری و به همه‌ی عناصر <book> نود‌های توضیحی اضافه می‌شود:

x = xmlDoc.getElementsByTagName("book");
xLen = x.length
برای (i = 0; i < xLen; i++) { 
    newComment = xmlDoc.createComment("تدوین مجدد در فوریه 2024");
    x[i].appendChild(newComment);
}

تست کنید