لیست نودهای DOM XML

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

لیست نودهای DOM

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

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

گره‌های لیست گره‌ها از طریق شماره‌ی نشانه‌ی شروع از 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" و طول لیست ویژگی‌ها