لیست گره XML DOM

لیست گره‌ها توسط روش getElementsByTagName() و ویژگی childNodes بازمی‌گردانند.

مثال

در این مثال از فایل XML استفاده می‌شود books.xml.

функشن loadXMLDoc()، که در JavaScript خارجی قرار دارد و برای بارگذاری فایل XML استفاده می‌شود.

متن از اولین عنصر <title> دریافت می‌شود
در این مثال از روش getElementsByTagName() برای دریافت متن از عنصر اول <title> از books.xml استفاده می‌کنیم.
با استفاده از ویژگی length گره‌ها را می‌چرخانیم
در این مثال از لیست گره‌ها و ویژگی length برای جستجوی تمام عناصر <title> در books.xml استفاده می‌کنیم.
ویژگی‌های عنصر را دریافت می‌کنیم
در این مثال از لیست ویژگی‌ها برای دریافت ویژگی‌های عنصر اول <title> از فایل books.xml استفاده می‌کنیم.

لیست گره DOM

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

عنصر NodeList یک لیست از گره‌ها را نشان می‌دهد که در XML به همان ترتیب نمایش داده می‌شود.

از شمارنده‌ای که از 0 شروع می‌شود برای دسترسی به گره‌های لیست گره‌ها استفاده می‌کنیم.

این تصویر نشان‌دهنده "books.xml"یک لیست گره از عناصر <title> در

لیست نود DOM

بخش کد زیر با استفاده از loadXMLDoc() "books.xml" را به xmlDoc بارگذاری می‌کند و بازمی‌گرداند "books.xml"یک لیست گره از عناصر title در

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title");

در اجرای جمله بالا، x یک عنصر NodeList می‌شود.

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

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

در اجرای جمله بالا، txt = "Everyday Italian" است.

TIY

طول لیست گره

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

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

بخش کد زیر با استفاده از loadXMLDoc() بصورت "books.xml"documnet.write("books.xml"، و تعداد عناصر <title> را در آن بازمی‌گرداند:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName('title').length;

در اجرای جمله بالا، x = 4 است.

طول لیست گره‌ها می‌تواند برای حلقه در تمام عناصر لیست استفاده شود.

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

xmlDoc=loadXMLDoc("books.xml");
// متغیر x یک لیست گره را نگه می‌دارد
x=xmlDoc.getElementsByTagName('title');
برای (i=0; i<x.length; i++)
{
document.write(x[i].childNodes[0].nodeValue);
document.write("<br />");
}

نمایش:

Harry Potter
Everyday Italian
XQuery Kick Start
Learning XML

مثال توضیحی:

  • با استفاده از loadXMLDoc() بصورت "books.xml"documnet.write("<br />");
  • مقدار x را برای لیست گره‌های تمام عناصر title تنظیم می‌کند
  • مقدار خروجی همه گره‌های متن <title> را نمایش می‌دهد

TIY

لیست ویژگی‌های DOM (Named Node Map)

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

این به عنوان Named Node Map شناخته می‌شود، به جز تفاوت‌های کمی در روش‌ها و ویژگی‌ها، با لیست گره‌ها مشابه است.

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

بخش کد زیر با استفاده از loadXMLDoc() بخش کد زیر "books.xml" را به xmlDoc بارگذاری می‌کند و از "books.xmlبخش " اولین <book> درون "

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName('book')[0].attributes;

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

بخش کد زیر یک لیست گره‌های ویژگی برای ویژگی "category" یک book و تعداد ویژگی‌ها را نمایش می‌دهد:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("book")[0].attributes;
document.write(x.getNamedItem("category").nodeValue);
document.write("<br />" + x.length);

نمایش:

children
1

مثال توضیحی:

  • با استفاده از loadXMLDoc() بصورت "books.xml" به xmlDoc بارگذاری می‌کند
  • مقدار متغیر x را به لیست ویژگی‌های تمام <book> اولین عناصر تنظیم می‌کند
  • مقدار "category" ویژگی را نمایش می‌دهد
  • طول لیست ویژگی‌ها را نمایش می‌دهد

TIY