دسترسی به گره‌های XML DOM

با استفاده از DOM، شما می‌توانید به هر گره در مستند XML دسترسی پیدا کنید.

مثال

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

توابع loadXMLDoc()، در خارج از JavaScript، برای بارگذاری فایل XML استفاده می‌شود.

با استفاده از شماره‌ی زیرمجموعه در لیست گره‌ها به گره‌ها دسترسی پیدا کنید
در این مثال از روش getElementsByTagname() برای دریافت سومین عنصر <title> در "books.xml" استفاده شده است.
با استفاده از ویژگی length برای جستجوی گره‌ها
در این مثال از ویژگی length برای جستجوی تمام عناصر <title> در "books.xml" استفاده شده است.
نوع گره عناصر را بررسی کنید
در این مثال از ویژگی nodeType برای دریافت نوع گره ریشه در "books.xml" استفاده شده است.
جستجوی گره‌های عناصر
در این مثال از ویژگی nodeType برای پردازش گره‌های عناصر در "books.xml" استفاده شده است.
با استفاده از روابط گره‌ها برای جستجوی گره‌های عناصر
در این مثال از ویژگی nodeType و ویژگی nextSibling برای پردازش گره‌های عناصر در "books.xml" استفاده شده است.

دسترسی به گره‌ها

شما می‌توانید از سه روش برای دسترسی به گره‌ها استفاده کنید:

  1. با استفاده از روش getElementsByTagName()
  2. با استفاده از جستجوی گره‌ها در درخت گره‌ها
  3. با استفاده از روابط بین گره‌ها در درخت گره‌ها جستجو می‌کنیم

روش getElementsByTagName()

زبان نشانه‌ای getElementsByTagName() تمام عناصر دارای نام نشانه‌ی مشخص شده را برمی‌گرداند.

زبان نشانه‌ای

نود.getElementsByTagName("tagname");

مثال

مثال زیر همه عناصر <title> زیر x را بازمی‌گرداند:

x.getElementsByTagName("title");

لطفاً توجه کنید که مثال بالا فقط عناصر <title> زیر x را بازمی‌گرداند. برای بازگرداندن همه عناصر <title> در XML سند، از:

xmlDoc.getElementsByTagName("title");

در اینجا، xmlDoc خود سند است (گره سند).

لیست گره DOM

getElementsByTagName() به لیست گره‌ها (لیست گره) بازمی‌گردد. لیست گره یک آرایه از گره‌هاست.

با استفاده از loadXMLDoc() " را تنظیم کنیدbooks.xml" به xmlDoc

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

می‌توانید با استفاده از شماره‌گذاری به عناصر <title> در x دسترسی پیدا کنید. برای دسترسی به سومین <title>، می‌توانید بنویسید:

y=x[2];

TIY

توضیح:آغاز از عدد 0 است.

در بخش‌های بعدی این درس بیشتر درباره لیست‌های گره‌ها یاد خواهید گرفت.

طول لیست گره DOM

طول ویژگی length طول لیست گره‌ها را تعریف می‌کند (یعنی تعداد گره‌ها).

شما می‌توانید با استفاده از طول ویژگی length یک لیست گره را در یک چرخه بگردید:

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 />");
  }

توضیح مثال:

  1. استفاده از loadXMLDoc() " را تنظیم کنیدbooks.xml" به xmlDoc
  2. دسترسی به همه عناصر <title>
  3. ارزش نود متنی هر علامت <title> را نمایش می‌دهد

TIY

نوع گره

XML سند documentElement ویژگی ریشه است.

ویژگی گره‌ها nodeName ویژگی نام گره است.

ویژگی گره‌ها nodeType ویژگی‌ها نوع گره هستند.

شما در بخش بعدی این درس بیشتر درباره ویژگی‌های گره‌ها یاد خواهید گرفت.

TIY

گردش گره‌ها

کد زیر فرزندان ریشه را در یک چرخه می‌گردد، همچنین گره‌های عناصری هستند:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.documentElement.childNodes;
for (i=0;i<x.length;i++)
{ 
  اگر (x[i].nodeType==1)
  {//تنها گره‌های عناصر (نوع 1) را پردازش کنید 
  document.write(x[i].nodeName);
  document.write("<br />");
  } 
}

توضیح مثال:

  1. با استفاده از loadXMLDoc() " را تنظیم کنیدbooks.xml" به داخل xmlDoc بارگذاری شود
  2. دسترسی به فرزندان عنصر ریشه
  3. بررسی نوع هر گره فرزند. اگر نوع گره "1" باشد، گره عناصری است
  4. اگر گره عناصر باشد، نام گره را چاپ کنید

TIY

با استفاده از روابط گره‌ها جابجایی کنید

این کد با استفاده از روابط گره‌ها در درخت گره‌ها جابجایی می‌کند:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("book")[0].childNodes;
y=xmlDoc.getElementsByTagName("book")[0].firstChild;
for (i=0;i<x.length;i++)
{
if (y.nodeType==1)
  {//تنها گره‌های عناصر (نوع 1) را پردازش کنید
  document.write(y.nodeName + "<br />");
  }
y=y.nextSibling;
}
  1. با استفاده از loadXMLDoc() " را تنظیم کنیدbooks.xml" به داخل xmlDoc بارگذاری شود
  2. اولین فرزند اولین عنصر "book" را به دست آورید
  3. مقدار "y" را به اولین فرزند اولین عنصر "book" تنظیم کنید
  4. نوع گره هر زیرگره را بررسی کنید، اگر نوع گره "1" باشد، گره عناصر است
  5. اگر گره عناصر باشد، نام آن گره را چاپ کنید
  6. مقدار "y" را به گره هم‌طبقه بعدی تنظیم کنید و دوباره حلقه را اجرا کنید

TIY