خصوصیات و روش‌های XML DOM

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

مثال

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

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

وظیفه loadXMLString()، در JavaScript خارجی قرار دارد، برای بارگذاری رشته XML استفاده می‌شود.

بارگذاری و تحلیل فایل XML
بارگذاری و تحلیل رشته XML

رابط برنامه‌نویسی

DOM XML را به مجموعه‌ای از رابط‌های گره شبیه‌سازی می‌کند. گره‌ها را می‌توان از طریق JavaScript یا زبان‌های برنامه‌نویسی دیگر دسترسی پیدا کرد. در این آموزش، ما از JavaScript استفاده می‌کنیم.

رابط برنامه‌نویسی DOM از طریق مجموعه‌ای از ویژگی‌ها و روش‌های استاندارد تعریف شده است.

ویژگی‌هااغلب اوقات به صورت "چیست چیزی" استفاده می‌شود (مثلاً نام گره "کتاب").

روشمعمولاً به روش «برای چیزی چه کاری انجام می‌دهم» استفاده می‌شوند (مثلاً حذف "book" نقطه).

ویژگی‌های XML DOM

برخی از ویژگی‌های DOM نمونه‌ای:

  • x.nodeName - نام x
  • x.nodeValue - مقدار x
  • x.parentNode - پدر نقطه x
  • x.childNodes - فرزندان x
  • x.attributes - نقطه‌های ویژگی x

توضیح:در لیست بالا، x یک شیء نقطه است.

روش‌های XML DOM

  • x.getElementsByTagName(name) - گرفتن تمام عناصر با نام برچسب مشخص
  • x.appendChild(node) - اضافه کردن فرزند به x
  • x.removeChild(node) - حذف فرزند از x

توضیح:در لیست بالا، x یک شیء نقطه است.

مثال

کد JavaScript برای گرفتن متن از عناصر <title> در books.xml:

txt=xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue;

در پایان این دستور، مقدار ذخیره شده در txt "Harry Potter" است.

توضیح:

  • xmlDoc - XML DOM ایجاد شده توسط پردازشگر
  • getElementsByTagName("title")[0] - اولین عناصر <title>
  • childNodes[0] - اولین فرزند <title> عناصر
  • nodeValue - مقدار نقطه (متن خود)

در مثال بالا، getElementsByTagName یک روش است و childNodes و nodeValue دو属性 هستند.

تحلیل فایل XML - نمونه‌ای از کاربرد چند مرورگر

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

xmlDoc=loadXMLDoc("books.xml");
document.write(xmlDoc.getElementsByTagName("title"))
[0].childNodes[0].nodeValue);
document.write("<br />");
document.write(xmlDoc.getElementsByTagName("author"))
[0].childNodes[0].nodeValue);
document.write("<br />");
document.write(xmlDoc.getElementsByTagName("year"))
[0].childNodes[0].nodeValue);

خروجی:

Harry Potter
J K. Rowling
2005

TIY

در مثال بالا، ما از childNodes[0] برای هر نقطه متن استفاده کرده‌ایم، حتی اگر هر عنصر فقط یک نقطه متن داشته باشد. این به دلیل اینکه روش getElementsByTagName() همیشه یک آرایه را برمی‌گرداند است.

تحلیل رشته XML - نمونه‌ای از کاربرد چند مرورگر

این کد یک رشته XML را بارگذاری و تحلیل می‌کند:

این قطعه کد از تابع loadXMLString استفاده می‌کند تا books.xml بارگذاری تحلیل‌گر XML و نمایش داده‌های اولین book:

text="<bookstore>"
text=text+"<book>";
text=text+"<title>Harry Potter</title>";
text=text+"<author>J K. Rowling</author>";
text=text+"<year>2005</year>";
text=text+"</book>";
text=text+"</bookstore>";
xmlDoc=loadXMLString(text);
document.write(xmlDoc.getElementsByTagName("title"))
[0].childNodes[0].nodeValue);
document.write("<br />");
document.write(xmlDoc.getElementsByTagName("author"))
[0].childNodes[0].nodeValue);
document.write("<br />");
document.write(xmlDoc.getElementsByTagName("year"))
[0].childNodes[0].nodeValue);

خروجی:

Harry Potter
J K. Rowling
2005

TIY