جستجو در محصولات

گالری پروژه های افتر افکت
گالری پروژه های PSD
جستجو در محصولات


تبلیغ بانک ها در صفحات
ربات ساز تلگرام در صفحات
ایمن نیوز در صفحات
.. سیستم ارسال پیامک ..
DOM چيست ؟

برگرفته از سايت سخا روش

-(8 Body) 
DOM چيست ؟
Visitor 2601
Category: کامپيوتر

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)

Add Comments
Name:
Email:  
User Comments:
SecurityCode: Captcha ImageChange Image