DOM چيست ؟

DOM)Document Object Model) يک رابط برنامه نويسی برای سندهای XML و Html است . با استفاده از اينترفيس فوق، نحوه دستيابی و انجام پردازش های لازم در رابطه با سند های XML و Html فراهم می گردد . برنامه نويسان با استفاده از DOM ، قادر به ايجاد يک سند ،حرکت در طول ساختار سند، افزودن ، اصلاح و يا حذف المان های يک سند XML و يا Html می باشند . DOM توسط کنسرسيوم وب استاندارد و بمنظور استفاده از طريق زبان های برنامه نويسی متعددی طراحی
دوشنبه، 14 بهمن 1387
تخمین زمان مطالعه:
موارد بیشتر برای شما
DOM چيست ؟
DOM چيست ؟
DOM چيست ؟

 

 
DOM)Document Object Model) يک رابط برنامه نويسی برای سندهای XML و Html است . با استفاده از اينترفيس فوق، نحوه دستيابی و انجام پردازش های لازم در رابطه با سند های XML و Html فراهم می گردد . برنامه نويسان با استفاده از DOM ، قادر به ايجاد يک سند ،حرکت در طول ساختار سند، افزودن ، اصلاح و يا حذف المان های يک سند XML و يا Html می باشند . DOM توسط کنسرسيوم وب استاندارد و بمنظور استفاده از طريق زبان های برنامه نويسی متعددی طراحی شده است .

گره ها

برنامه ای با نام پارسر، امکان استقرار يک سند XML در حافظه را فراهم می نمايد . پس از استقرار سند در حافظه ، اطلاعات مربوطه بکمک DOM ، قابل بازيابی و پردازش خواهد بود . DOM ، يک نمايش شبه درختی از يک سند XML را ايجاد می نمايد . المان Document ، دارای بالاترين سطح در درخت ايجاد شده است . المان فوق ، دارای يک و يا چندين فرزند است . يک اينترفيس گره ، امکان خواندن و يا نوشتن المان های خاصی در ساختار درختواره ای يک سند XML را ميسر می نمايد .با استفاده از خصلت ChildNodes مربوط به المان Document و بکارگيری يک حلقه تکرار می توان هر يک از گره ها را انتخاب و در ادامه عمليات مورد نظر در رابطه با آن را انجام داد . پارسر شرکت ماکروسافت (MSXML) ، دارای توابع متفاوت بمنظور حرکت در طول درخت، دستيابی به گره ها بهمراه خصلت مربوطه، درج و حذف گره ها و تبديل ساختار درختی به شکل اوليه XML است . در حال حاضر، سيزده نوع متفاوت گره توسط پارسرشرکت ماکروسافت، حمايت می گردد . جدول زير متداولترين نوع گره ها را نشان می دهد .

مثال

نوع گره

<!DOCTYPE food SYSTEM "food.dtd">

Document type

<?xml version="1.0"?>

Processing instruction

<drink type="tea">Irani</drink>

Element

type="tea"

Attribute

Irani

Text

استفاده از پارسر

بمنظور خواندن، ويرايش و يا ايجاد و پردازش يک سند XML ، می بايست از يک پارسر استفاده کرد . پارسر شرکت ماکروسافت، يک عنصر مبتنی بر COM بوده که بهمراه IE نسخه پنج ، ارائه شده است . پس از نصب مرورگر فوق، امکان استفاده از پارسر فراهم می گردد . پارسر MSXML ، دارای امکانات متعدد برنامه نويسی بمنظور استفاده توسط زبانهای زير است :
• حمايت از جاوااسکريپت VBScript Perl جاوا و ++ C
• حمايت از استاندارد کنسرسيوم وب و XML DOM
• حمايت از DTD و معتبر سازی
مثال : نحوه ايجاد شی Document ، با استفاده جاوااسکريپت ، VBscript و ASP در جدول زير نشان داده شده است :

مثال

تکنولوژی

var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")

Javascript

set xmlDoc = CreateObject("Microsoft.XMLDOM")

VBscript

set xmlDoc = Server.CreateObject("Microsoft.XMLDOM")

ASP

استقرار يک سند XML در حافظه

کدهای زير نحوه استقرار يک سند XML با نام Test.xml در حافظه را نشان می دهد :

استقرار يک سند XMLدر حافظه

<script language="JavaScript">
     var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")
      xmlDoc.async="false"
      xmlDoc.load("Test.xml")
      // ....... پردازشهای لازم  
</script>

اولين خط در اسکريپت های فوق ، يک نمونه از پارسر XML شرکت ماکروسافت را ايجاد می نمايد . در دومين خط ، به پارسر اعلام می گردد منتظر دريافت کامل سند XML بوده قبل از اينکه پردازش خود را آغاز نمايد . در سومين خط ، به پارسر اعلام شده است که يک سند XML با نام Test.xml را در حافظه مستقر نمايد .

استقرار متن XML در پارسر

کدهای زير، نحوه استقرار يک رشته متن را در پارسر XML نشان می دهد . در مثال فوق از متد LoadXML در مقابل متد load استفاده شده است . از متد loadXML بمنظور استقرار يک رشته متن در پارسر استفاده می گردد .

استقرار يک رشته متن XMLدر حافظه

<script language="JavaScript">
    var text="<note>"
    text=text+"<to>Ali</to><from>Reza</from>"
    text=text+"<heading>Reminder</heading>"
    text=text+"<body>Don't forget me this weekend!</body>"
    text=text+"</note>"
    var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")
    xmlDoc.async="false"
    xmlDoc.loadXML(text)
    // ....... پردازش هایلازم
</script>

شی ParseError

خطای مربوط به فايل : با استفاده از شی ParseError ، می توان از کد ، متن خطاء و حتی شماره خطی که خطاء در آن اتفاق افتاده است ، آگاهی يافت . در برنامه زير پارسر، سعی در استقرار سندی XML در حافظه نموده که وجود خارجی ندارد . پس از تشخيص خطاء ، برخی از خصلت های مربوط به خطاء در خروجی نمايش داده خواهد شد .

تشخيص خطاء و استفاده از شی ParseErrorدر رابطه با وجود يک فايل

var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")
xmlDoc.async="false"
xmlDoc.load("Test1.xml")
document.write("<br>Error Code: ")
document.write(xmlDoc.parseError.errorCode)
document.write("<br>Error Reason: ")
document.write(xmlDoc.parseError.reason)
document.write("<br>Error Line: ")
document.write(xmlDoc.parseError.line)

خطای مربوط به XML . فرض کنيد يک سند XML که "خوش شکل " نمی باشد، توسط پارسر خوانده شود . کدهای زير نحوه تشخيص و برخورد با خطاء را نشان می دهد :

تشخيص خطاء و استفاده از شی ParseError  در رابطه با سند "خوش شکل "

var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")
xmlDoc.async="false"
xmlDoc.load("note_error.xml")
document.write("<br>Error Code: ")
document.write(xmlDoc.parseError.errorCode)
document.write("<br>Error Reason: ")
document.write(xmlDoc.parseError.reason)
document.write("<br>Error Line: ")
document.write(xmlDoc.parseError.line)

خصلت های ParseError

عملکرد

خصلت

کد خطای بوجود آمده ، برگردانده می شود .

errorCode

علت خطای بوجود آمده  ،برگردانده می شود . 

reason

شماره خط خطای بوجود آمده  ، برگردانده می شود 

line

محل بروز خطاء در خط مربوطه را برمی گرداند .

linePos

رشته ای که شامل خط مربوط به خطای بوجود آمده است،  برگردانده می شود

srcText

urlمربوط به سند مستقر سده در حافظه ،  بر گردانده می شود .

url

محل بروز خطاء در فايل مربوطه،  برگردانده می شود .

filePos

حرکت در طول درخت

يکی از متداولترين روش های بازيابی المان های يک سند XML ، حرکت در طول درخت ( از گره ای به گره ديگر ) و استخراج مقدار متن ذخيره شده بهمراه هر يک از المان ها است . کدهای نوشته شده زير ، امکان حرکت در طول يک درخت XML را فراهم و در ادامه هر يک از المان های سند XML ، در خروجی نمايش داده می شوند ( کدها با استفاده از VBScript نوشته شده اند ) .

حرکت در طول درخت و نمايش المان های يک سند XML

set xmlDoc=CreateObject("Microsoft.XMLDOM")
xmlDoc.async="false"
xmlDoc.load("note.xml")
for each x in xmlDoc.documentElement.childNodes
document.write(x.nodename)
document.write(": ")
 document.write(x.text)
next

ايجاد محتويات مبتنی بر Html برای يک سند XML

يکی از مهمترين قابليت های XML ، تمايز و تفکيک سندهای Html از داده های مربوطه است . با استفاده از يک پارسر XML ، موجود در مرورگرها ، يک صفحه وب قادر به ايجاد محتوياتی پويا است . در اين زمينه می توان از پتانسيل های جاوااسکريپت بمنظور توليد و ارائه محتويات پويا نيز استفاده کرد . در همين راستا ، امکان استفاده از ASP برا ی ايجاد محتويات پويا با تاکيد بر نقش سرويس دهنده وب نيز وجود دارد . برنامه زير ، داده های موجود در يک سند XML را خوانده و آنها را با فرمت Html در خروجی نمايش خواهد داد .

نمايش داده های موجود در يک سند XMLبا استفاده از جاوااسکريپت

var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")
xmlDoc.async="false"
xmlDoc.load("note.xml")
nodes = xmlDoc.documentElement.childNodes
to.innerText = nodes.item(0).text
from.innerText = nodes.item(1).text
header.innerText = nodes.item(2).text
body.innerText = nodes.item(3).text

دستيابی به المان ها از طريق نام

رنامه زير داده های موجود در يک سند XML را خوانده و آنها را با فرمت Html در خروجی نمايش خواهد داد .

دستيابی به المان ها د ر  يک سند XML  از طريق نام و بکمک  جاوااسکريپت

var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")
xmlDoc.async="false"
xmlDoc.load("note.xml")
document.write(xmlDoc.getElementsByTagName("from").item(0).text)

 

 ..............................

منبع : http://barnamenevis.org/showthread.php?65619



ارسال نظر
با تشکر، نظر شما پس از بررسی و تایید در سایت قرار خواهد گرفت.
متاسفانه در برقراری ارتباط خطایی رخ داده. لطفاً دوباره تلاش کنید.
مقالات مرتبط
موارد بیشتر برای شما
مراسم تدفین سیدحسن نصرالله چگونه انجام می‌شود؟
play_arrow
مراسم تدفین سیدحسن نصرالله چگونه انجام می‌شود؟
دستور اژه‌ای در خصوص دستگیری هر چه سریع تر قاتل دانشجوی دانشگاه تهران
play_arrow
دستور اژه‌ای در خصوص دستگیری هر چه سریع تر قاتل دانشجوی دانشگاه تهران
علت عصبانیت مستکبرین از ایران در کلام رهبر انقلاب
play_arrow
علت عصبانیت مستکبرین از ایران در کلام رهبر انقلاب
12 نکته مهم برای سفر در ماه مبارک رمضان
12 نکته مهم برای سفر در ماه مبارک رمضان
رهبرانقلاب: توانایی ما برای مقابله با تهدیدهای سخت در سطح عالی است
play_arrow
رهبرانقلاب: توانایی ما برای مقابله با تهدیدهای سخت در سطح عالی است
بقائی: انتقال اجباری فلسطینیان توطئه‌ای مردود است
play_arrow
بقائی: انتقال اجباری فلسطینیان توطئه‌ای مردود است
پزشکیان: جایگاه علم و دانایی حد و مرزی ندارد
play_arrow
پزشکیان: جایگاه علم و دانایی حد و مرزی ندارد
دستور اکید رئیس قوه قضاییه در خصوص جرایم خشن
play_arrow
دستور اکید رئیس قوه قضاییه در خصوص جرایم خشن
اژه‌ای: قوه قضاییه ناخواسته در ۲ قطبی‌ها نیفتد
play_arrow
اژه‌ای: قوه قضاییه ناخواسته در ۲ قطبی‌ها نیفتد
چهار ویژگی ممتاز مردم آذربایجان شرقی در کلام رهبر انقلاب
play_arrow
چهار ویژگی ممتاز مردم آذربایجان شرقی در کلام رهبر انقلاب
واکنش بقایی به تهدید ایران توسط نتانیاهو
play_arrow
واکنش بقایی به تهدید ایران توسط نتانیاهو
دور زدن ترامپ با خودروی ریاست جمهوری در پیست!
play_arrow
دور زدن ترامپ با خودروی ریاست جمهوری در پیست!
بقایی: ایران مباحث هسته‌ای را با روسیه پیگیری می‌کند
play_arrow
بقایی: ایران مباحث هسته‌ای را با روسیه پیگیری می‌کند
توصیه رهبر انقلاب برای مقابله با تهدید نرم‌افزاری دشمن
play_arrow
توصیه رهبر انقلاب برای مقابله با تهدید نرم‌افزاری دشمن
قیمت هتل الوند مشهد، کیفیت بالا در نزدیکی  مراکز گردشگری مشهد
قیمت هتل الوند مشهد، کیفیت بالا در نزدیکی مراکز گردشگری مشهد