زمانیکه شما از ویژگی چون childNodes و یا متدهایی چون getElementsByTagName انگاه جواب یک لیست یا ارایه ای از اشیای node هاست 
 هر خانه از این لیست یک شماره می گیرد که شماره اولین خانه صفر است
 تصویر زیر اطلاعات مربوط به node با نام title و node های درون ان را نشان می دهد
 در فایل books.xml ما کلا چهار تا node با نام titile داریم
 درون title ما دو node دیگر داریم
 یکی از نو صفت است و دیگری از نوع text
مشاهده فایل books.xml

 

 
 مثال

 در قسمت زیر تابعی به نام loadXMLDoc تعریف می کنیم

( این تابع را به خاطر داشته باشید زیرا در تمامی مثالهای  فصلهای اموزش xml dom از ان استفاده می کنیم )

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

 

 

function loadXMLDoc(dname)
{
if (window.XMLHttpRequest)
  {
  xhttp=new XMLHttpRequest();
  }
else
  {
  xhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }


xhttp.open("GET",dname,false);

xhttp.send();


return xhttp.responseXML;
}

دستورات این تابع در قسمت های بعدی اموزش زبانهای xml مثل xslt و xpath کاملا توضیح داده شده است

حالا اول تابع  loadXMLDoc را صدا می زنیم تا اجرا بشه

 و سپس لیستی از node هایی که اسمشون title است را از فایلی که xmldoc به ان اشاره می کند گرفته در x قرار می دهیم

 

xmlDoc=loadXMLDoc("books.xml");

x=xmlDoc.getElementsByTagName("title");

 
 مثال
 قطعه کد زیر ، text برای اولین node به نام title از ارایه x را بر می گرداند

 

txt=x[0].childNodes[0].nodeValue;
 مشاهده و اجرای برنامه کامل
ویژگی length مربوط به لیست یا ارایه  node ها

 شی ای که در اصل ارایه ای از node ها می شود ، همیشه بروز خواهد بود

یعنی اگر در سند xml یک المنت حذف یا اضافه شود ، این تغییرات روی ارایه هم ایجاد خواهد شد

 ویژگی length مربوط به ارایه node ها تعداد node های دورن لیست را بر می گرداند
 مثال

 قطعه برنامه زیر ، یک فایل xml به نام books را در متغیری به نام xmldoc را با استفاد ه از تابع ای که خودمان ساخته ایم و نام ان loadxmldoc  است ، بار گذاری می کند

( مشاهده فایل books.xml )

 

و تعداد المنت هایی در سند xml که نامشان titile است را بر می گرداند

 

xmlDoc=loadXMLDoc("books.xml");

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

 بعد از اجرای دستورات بالا ،مقدار x برابر 4 می شود

 اما کاربرد ویژگی length چیست ؟

از این ویژگی می توان در یک حلقه استفاده کرد و کارهایی را با تمام node های موجود در لیست node هایی که ایجاد کرده ایم انجام دهیم

 مثال

دستورات زیر کارهایی را روی تمام node های titile که درو ن لیست هستند انجام می دهد

 

xmlDoc=loadXMLDoc("books.xml");

//the x variable will hold a node list
x=xmlDoc.getElementsByTagName('title');

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

 
دستورات بالا بازای هر node در ارایه x ،  مقدار  اولین node دورن ان را در خروجی نمایش می دهد

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

Everyday Italian
Harry Potter
XQuery Kick Start
Learning XML

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

 در برنامه بالا :

با استفاده از تابع loadxmldoc فایل books.xml در متغیر xmldoc بار گذاری می شود

متغیر x برای نگه داشتن تمام node هایی که اسم انها titile است تنظیم می شود

مقدار تمام node های متنی که درون node های titile هستند در خروجی نمایش داده می شود

لیست صفتهای هر تگ

 ویژگی attributes  لیستی از node های صفتهای مربوط به المنت مشخص شده را بر می گرداند

لیست صفتها با تغییر مقدار و یا حذف صفتها از فایل اصلی xml به روز رسانی می شود

فقط توجه داشته باشید برای دسترسی به هر تگ با استفاده از نام ان تگ از متد

getelementbytagname استفاده کردیم

اما از انجا که صفتها یک تگ نیستند بلکه یک گزینه هستند پس برای دسترسی به صفتها از متد

getNamedItem استفاده می کنیم

 مثال

قطعه برنامه زیر با استفاده از تابع loadxmldoc فایل books.xml را در متغیر xmldoc بار گذاری می کند

و سپس لیستی از صفتهای موجود در اولین المنت این فایل را که نام ان book است را بر می گرداند

 

xmlDoc=loadXMLDoc("books.xml");

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

 بعد از اجرای دستورات بالا نتیجه دستور x.length برابر تعداد صفتهای موجود در node المنت book اول است
 قطعه کد زیر مقدار صفت category المنت book و همچنین تعداد صفتهای اولین book را نشان می دهد

 

xmlDoc=loadXMLDoc("books.xml");

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

document.write(x.getNamedItem("category").nodeValue);
document.write(" " + x.length);

 در خط دوم ، لیستی از صفتهای اولین تگ book در متغیر x قرار می گیرد

در واقع x می شود یک ارایه هر خانه ان به یکی از این صفتها اشاره خواهد کرد

 خط سوم :

متد getNamedItem برای دسترسی به صفتی به نام category بکار می رود و nodeValue یعنی مقدار این صفت را نمایش بده

 خروجی دستورات بالا :

cooking
1

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