XML DOM نیوٹ لیست

getElementsByTagName() و childNodes ویژگی استفاده می‌کنید، لیست نودها را برمی‌گرداند.

DOM نیوٹ لیست

وقتی از childNodes یا getElementsByTagName() وقتی به یک یا چند ویژگی یا روش دسترسی می‌کنید، شیء NodeList را برمی‌گرداند.

شیء NodeList لیستی از نودها را نشان می‌دهد، که ترتیب آن‌ها با ترتیب در XML یکسان است.

نودهای لیست NodeList می‌توانند از طریق شماره‌ای که از 0 شروع می‌شود دسترسی پیدا کنند.

این تصویر نشان می‌دهد: books.xml لیست نودهای عناصر <title>:

DOM نیوٹ لیست

فرض کنید "books.xml" به متغیر xmlDoc بارگذاری شده باشد.

این کد فقیره لیست نودهای عناصر title در فایل "books.xml" را برمی‌گرداند:

x = xmlDoc.getElementsByTagName("title");

بعد از اجرای دستورات بالا، x یک شیء NodeList می‌شود.

این بخش از کد لیست گره‌ها (x) را از اولین عنصر <title> برمی‌گرداند:

مثال

var txt = x[0].childNodes[0].nodeValue;

خود سے کوشاں کریں

پس از اجرای جمله بالا، txt = "یاشا تان چو".

طول لیست گره‌ها

عنصر NodeList خود را حفظ می‌کند. اگر عنصر حذف یا اضافه شود، لیست به طور خودکار به‌روزرسانی می‌شود.

لیست گره‌ها length ویژگی‌ها تعداد گره‌های موجود در لیست است.

این کد تعداد عناصر <title> در "books.xml" را برمی‌گرداند:

x = xmlDoc.getElementsByTagName('title').length;

پس از اجرای جمله بالا،x به مقدار 5 است.

طول لیست گره‌ها برای جستجوی همه عناصر موجود در لیست استفاده می‌کند.

این کد از length ویژگی‌ها برای جستجوی لیست عناصر <title>:

مثال

x = xmlDoc.getElementsByTagName('title');
xLen = x.length;
برای (i = 0; i <xLen; i++) {
    txt += (x[i].childNodes[0].nodeValue) + " ";
}

خود سے کوشاں کریں

مثال کی توجیہ:

  1. بناکر books.xml به xmlDoc بائیں
  2. متغیر x را تنظیم کنید تا لیست گره‌های همه عناصر title را ذخیره کند
  3. مقدار گره‌های متن از عنصر <title> را دریافت می‌کند

لیست ویژگی‌های DOM (نقشه گره‌های نام‌گذاری شده)

ویژگی‌های گره‌های attributes ویژگی‌ها لیست گره‌های ویژگی را برمی‌گرداند.

این به نام نقشه گره‌های نام‌گذاری شده (named node map) معروف است، شبیه لیست گره‌هاست اما روش‌ها و ویژگی‌های متفاوتی دارد.

لیست ویژگی‌ها نیز به‌روز خواهد ماند. اگر ویژگی‌ها حذف یا اضافه شوند، لیست به طور خودکار به‌روزرسانی می‌شود.

این کد لیست گره‌های ویژگی را از اولین عنصر <book> در "books.xml" برمی‌گرداند:

x = xmlDoc.getElementsByTagName('book')[0].attributes;

پس از اجرای کد بالا،x.length برابر تعداد ویژگی‌هاست و می‌توان از آن استفاده کرد x.getNamedItem() یک گره ویژگی را برمی‌گرداند.

کد مذکور مقدار ویژگی "category" اولین کتاب و تعداد ویژگی‌ها را دریافت می‌کند:

مثال

x = xmlDoc.getElementsByTagName("book")[0].attributes;
txt = x.getNamedItem("category").nodeValue + " " + x.length;

خود سے کوشاں کریں

مثال کی توجیہ:

  1. بناکر books.xml شروع کیا گیا xmlDoc بائیں
  2. x متغیر کو سیٹ کریں تاکہ پہلے <book> عنصر کی تمام کوالائٹیوں کی لسٹ کو محفوظ کیا جائے
  3. "category" کوالائٹی کی کی دوسری کوالائٹی کی لسٹ کی لمبائی کو حاصل کریں