شی NodeList لیست مرتب شده ای از node ها را ارائه می دهد 
در لیست node ، می توان به  node ها  از طریق اندیس انها که عددی با شروع از صفر می باشد دسترسی داشت
 nodelist ( لیست node ) ها همواره خود را به روز نگه می دارد
 اگر به هر دلیلی node ای در فایل xml یا لیست node ها حذف یا اضافه شود ، nodelist بطور خودکار به روز می شود

 

node ها به همان ترتیبی که در فایل xml هستند  در لیست node یا همان nodelist   قرار می گیرند

 

 حروف اختصاری زیر را در نظر بگیرید

IE: Internet Explorer,

F: Firefox,

O: Opera,

W3C: World Wide Web Consortium (Internet Standard)

 و همچنین عددها در جدول زیر بیانگر نسخه مرورگری است که از ان نسخه به بعد  از ان ویژگی حمایت می کند

 
 جدول زیر ویژگیهای شی nodelist را نشان می دهد

 

ویژگیتوضیحاتIEFOW3C
length تعداد node های موجود در لیست node را بر می گرداند 5 1 9 Yes
 
  جدول زیر متدهای شی nodelist را نشان می دهد
 
متدتوضیحاتIEFOW3C

 

item()

از لیست node ها ان node  ای که شماره اش را مشخص می کنیم بر می گرداند 5 1 9 Yes
 
length
 این ویژگی، تعداد node های قرار گرفته در لیست node را بر می گرداند
 روش استفاده از این متد بصورت زیر است :

 

nodelistObject.length
 
 مثال

 قطعه برنامه زیر ، با استفاده از تابع loadXMLDoc فایل books.xml را بار گذاری می کند طوری که اشاره گری به نام xmldoc به ان اشاره می کند سپس با استفاده از متد getElementsByTagName لیستی از تگ ها ( المنت ها) یی که اسم انها title است را در ارایه ای به نام x قرار می دهدبه این صورت که هر خانه X به یکی از title ها اشاره می کند

سپس تعداد خانه های این ارایه که می شود تعداد المنت های title را نمایش می دهد

 و در نهایت تعداد node هایی را که نام انها title است می دهد

 

xmlDoc=loadXMLDoc("books.xml");

x=xmlDoc.getElementsByTagName('title');

document.write("Number of title elements: " + x.length);

 خروجی برنامه :

Number of title elements: 4
 مشاهده  و اجرای برنامه کامل
 

 مثال 2

می خواهیم با یک حلقه ، مقدار متنی تمام node های متنی که فرزند تگ های ( المنتهای ) titile هستند را نمایش دهیم

 

xmlDoc=loadXMLDoc("books.xml");

x=xmlDoc.getElementsByTagName('title');

for (i=0;i<x.length;i++)
  {
  document.write(x[i].childNodes[0].nodeValue);
  document.write("<br>");
  }


 مشاهده و اجرای برنامه کامل
 
متد item
اشاره گری به  node ای که شماره اندیس ان را مشخص کرده ایم از لیست node ها بر می گرداند
 روش استفاده از این متد :

 

item(index)

 فایر فاکس و بیشتر مرورگرها به جز اینترنت اکسپلورر ، فضای خالی یا کاراکتر خط بعد بین المنت ها ( تگ ها )  را بعنوان یک node متنی می شناسند

یعنی چه ؟

یعنی مثلا ما در هنگام تعریف تگ book و فرزندش تگ titile  ، بعد از نوشتن علامت بزرگتری تگ book  یک جای خالی بزنیم بعد node المنت فرزند انرا یعنی همان   titile را بنویسیم

یا اینکه بعد از نوشتن تگ بسته titlr یک enter بزنیم برویم و بعد تگ بسته book را بنویسیم

 

همانطور که گفته شد ، بیشتر مرورگرها به جای خالی و یا خط بعدی بین علامت بسته یک تگ ( المنت ) و تگ ( المنت ) باز بعدی را  بعنوان یک node فرزند  نگاه می کنند

اگر من بعد از نوشتن  book شروع ، یک enter بزنم ، این enter می شود اولین node فرزند تگ book که البته این فرزند از نوع المنت نیست چون enter یک تگ نیست

بعد تگ ( المنت ) به نام title را می نویسم که می شود فرزند تگ book و از نوع المنت است یعنی تگ است

بعد مقدار Art را درون titile می نویسم و این می شود  node فرزند تگtitle

بعد تگ titile را می بندم

بعد مثلا یک جای خالی بگذارم ایم می شود سومین فرزند تگ book و البته که از نوع امنت یعنی تگ نیست

بعد در نهایت هم که تگ book را ببندم

<book>

                                  <title>    art  </title>  </book>

 

 

 در مثال زیر ، با استفاده از تابعی سعی شده است نوع node مشخص شود

برای مشاهده شماره هر نوع node اینجا کلیک کنید

 

در مدل xml dom ، شماره  المنت ها یک است

بنابراین اگر فرزند یک node ای از نوع المنت نباشد ، باید انرا رها کنیم و به سراغ node بعدی برویم

 با این روش ، نتیجه اجرای برنامه ما در تمام مرورگرها یکسان خواهد بود
 
 

 مثال

قطعه برنامه زیر فایل books.xml را بار گذاری می کند و سپس نام تمام تگ های المنت فرزند تگ ریشه که همان bookstore است را نمایش می دهد

 

xmlDoc=loadXMLDoc("books.xml");

x=xmlDoc.documentElement.childNodes;

for (i=0;i<x.length;i++)
{


//نمایش دادن نام نوود هایی که از نوع المنت هستند
if (x.item(i).nodeType==1)
  {
  document.write(x.item(i).nodeName);
  document.write("
");
  }
}

 خط اول :

xmlDoc=loadXMLDoc("books.xml");

 

ایجاد اشاره گری به فایل  books.xml به نام xmldoc

 خط دوم :

x=xmlDoc.documentElement.childNodes;

 

دریافت تمام فرزندان تگ ریشه و ایجاد ارایه ای از اشاره گرها به هر کدام از این فرزندان

نام ارایه x تعیین شده است

documentelement یعنی تگ ریشه فایل xml

childnodes یعنی فرزندان تگ مورد نظر که می شود فرزندان تگ ریشه

 

 

if (x.item(i).nodeType==1)

item با اندیس i ام ارایه X یعنی خانه i ام X

که اشاره گری است که به i امین فرزند تگ ریشه اشاره دارد

 

 

  document.write(x.item(i).nodeName);

item با اندیس i ام ارایه X یعنی خانه i ام X

یعنی نام  i امین تگی که فرزند x است را نمایش بده

 

 خروجی :

book
book
book
book

 مشاهده و اجرای برنامه کامل