دسترسی به نواحی XML DOM

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

دسترسی به نودها

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

  • با استفاده از روش getElementsByTagName()
  • با استفاده از دوری از درخت نودها (دورزدن)
  • با استفاده از ارتباطات نودها در درخت نودها هدایت می‌شود

روش getElementsByTagName()

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

زبان

node.getElementsByTagName("tagname");

مثال

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

x.getElementsByTagName("title");

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

xmlDoc.getElementsByTagName("title");

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

لیست نودهای DOM

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

x = xmlDoc.getElementsByTagName("title");

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

y = x[2];

توضیح:شمارا از 0 شروع می‌شود.

آزمایش کنید

طول لیست گره‌های DOM

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

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

مثال

var x = xmlDoc.getElementsByTagName("title");
for (i = 0; i < x.length; i++) {
  // می‌توانید کد پردازش هر گره را در اینجا بنویسید
  }

آزمایش کنید

نوع گره

گره‌های documentElement ویژگی ریشه است.

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

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

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

آزمایش کنید

چرخش گره

این کد از طریق یک چرخه برای هدایت فرزندان ریشه (گره‌های عناصر) را می‌چرخاند:

مثال

txt = "";
x = xmlDoc.documentElement.childNodes;
for (i = 0; i < x.length; i++) {
  // فقط گره‌های عناصر (نوع 1) را پردازش می‌کنیم
  if (x[i].nodeType == 1) {
    txt += x[i].nodeName + "<br>";
  }
}

آزمایش کنید

توضیح مثال:

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

روابط هدایت گره

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

مثال

x = xmlDoc.getElementsByTagName("book")[0];
xlen = x.childNodes.length;
y = x.firstChild;
txt = "";
for (i = 0; i < xlen; i++) {
  // فقط گره‌های عناصر (نوع 1) را پردازش می‌کنیم
  if (y.nodeType == 1) {
    txt += y.nodeName + "<br>";
  }
  y = y.nextSibling;
}

آزمایش کنید

توضیح مثال:

  1. فرض کنید که شماbooks.xmlبه xmlDoc
  2. دسترسی به فرزندان گره اولین element
  3. مقدار متغیر "y" تنظیم می‌شود به اولین گره فرزند element اولین book
  4. برای هر گره فرزند (از اولین گره فرزند "y" آغاز شود):
  5. هر گره فرزند را بررسی می‌کند. اگر نوع گره باشد "1"، آن یک گره عنصر است
  6. اگر گره نوع عنصر باشد، نام آن گره را چاپ می‌کند
  7. مقدار "yمقدار متغیر "y" تنظیم می‌شود به گره همتا بعدی و دوباره چرخه اجرا می‌شود