ایکس ایم ال ڈوم - خصوصیات اور طریقوں

پرزنٹیشن اور متد، XML DOM کو پروگرامنگ انٹرفیس کی شکل میں دکھاتا ہے。

مثال

درج ذیل مثال XML فائل کا استعمال کرتا ہے books.xml

فونکشن loadXMLDoc()، جو باہری JavaScript میں واقع ہے، XML فائل لوڈ کرنے کے لئے استعمال کی جاتی ہے。

فونکشن loadXMLString()، جو باہری JavaScript میں واقع ہے، XML اسٹرنگ لوڈ کرنے کے لئے استعمال کی جاتی ہے。

XML فائل لوڈ کرنا اور اس کو پارس کرنا
XML اسٹرنگ لوڈ کرنا اور اس کو پارس کرنا

پروگرامنگ انٹرفیس

DOM XML کو ایک سلسلہ نیود انٹرفیسز کی شکل میں نمائش میں لگا رہا ہے۔ نیود تک JavaScript یا دیگر پروگرامنگ زبانوں کے ذریعے رسائی حاصل کی جاسکتی ہے۔ اس تعلیمی کتاب میں، ہم JavaScript کا استعمال کرتے ہیں。

DOM کا پروگرامنگ انٹرفیس ایک معیاری پرزنٹیشن اور متدوں کے ذریعے پیمانہ بند کیا گیا ہے。

کیا属性آپ سیٹ 'کچھ چی ہو' کے طور پر استعمال کرتے ہیں (مثلاً نیود کا نام 'book' ہے)。

روشمعمولاً به روش "برای چیزی انجام چیزی" استفاده می‌شوند (مثلاً حذف "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);

خروج:

هری پاٹر
جی کے. رولنگ
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);

خروج:

هری پاٹر
جی کے. رولنگ
2005

TIY