نحوه دستيابی و انجام پردازش های لازم در رابطه با سند های XML New Page 1



ساير




 

 

 

SAKHA RAVESH CO.

 ا مروز

 سه شنبه  9  خرداد  1396  2017  May  30   Tuesday ToDay
صفحه اصلی  مقالات نکته هادايره المعارف خودآموزها | تازه ها خود آزمون ها    
  نسخه قابل چاپ  

    5 4 3 2 1 

 عنوان

 نويسنده

  مشاهده

 تعداد آراء

 امتياز

  DOM چيست ؟

 مديريت وب

10637

11

4

با توجه به جایگاه داده در عصر حاضر و  لزوم نگاه جامع به این مقوله مهم ، بر آن شدیم تا محوریت فعالیت های خود را بر  روی این موضوع متمرکز نمائیم . از این رو گروه فابک با شعار فناوری اطلاعات برای کسب وکار شکل گرفت و  خدمات خود  را از طریق  سایت www.fabak.ir  به مخاطبان محترم عرضه می نماید

 

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)



جستجو

مقالات                 
دايره المعارف       
دوره های آموزشی


 

 

مشاهده گروه ها



              

 

 تهيه شده در شرکت سخا روش -  1382