DOM چيست ؟
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"> |
استقرار متن XML در پارسر
کدهای زير، نحوه استقرار يک رشته متن را در پارسر XML نشان می دهد . در مثال فوق از متد LoadXML در مقابل متد load استفاده شده است . از متد loadXML بمنظور استقرار يک رشته متن در پارسر استفاده می گردد .
استقرار يک رشته متن XMLدر حافظه |
<script language="JavaScript"> |
شی ParseError
خطای مربوط به فايل : با استفاده از شی ParseError ، می توان از کد ، متن خطاء و حتی شماره خطی که خطاء در آن اتفاق افتاده است ، آگاهی يافت . در برنامه زير پارسر، سعی در استقرار سندی XML در حافظه نموده که وجود خارجی ندارد . پس از تشخيص خطاء ، برخی از خصلت های مربوط به خطاء در خروجی نمايش داده خواهد شد .
تشخيص خطاء و استفاده از شی ParseErrorدر رابطه با وجود يک فايل |
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM") |
خطای مربوط به XML . فرض کنيد يک سند XML که "خوش شکل " نمی باشد، توسط پارسر خوانده شود . کدهای زير نحوه تشخيص و برخورد با خطاء را نشان می دهد :
تشخيص خطاء و استفاده از شی ParseError در رابطه با سند "خوش شکل " |
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM") |
خصلت های ParseError
عملکرد |
خصلت |
کد خطای بوجود آمده ، برگردانده می شود . |
errorCode |
علت خطای بوجود آمده ،برگردانده می شود . |
reason |
شماره خط خطای بوجود آمده ، برگردانده می شود |
line |
محل بروز خطاء در خط مربوطه را برمی گرداند . |
linePos |
رشته ای که شامل خط مربوط به خطای بوجود آمده است، برگردانده می شود |
srcText |
urlمربوط به سند مستقر سده در حافظه ، بر گردانده می شود . |
url |
محل بروز خطاء در فايل مربوطه، برگردانده می شود . |
filePos |
حرکت در طول درخت
يکی از متداولترين روش های بازيابی المان های يک سند XML ، حرکت در طول درخت ( از گره ای به گره ديگر ) و استخراج مقدار متن ذخيره شده بهمراه هر يک از المان ها است . کدهای نوشته شده زير ، امکان حرکت در طول يک درخت XML را فراهم و در ادامه هر يک از المان های سند XML ، در خروجی نمايش داده می شوند ( کدها با استفاده از VBScript نوشته شده اند ) .
حرکت در طول درخت و نمايش المان های يک سند XML |
set xmlDoc=CreateObject("Microsoft.XMLDOM") |
ايجاد محتويات مبتنی بر Html برای يک سند XML
يکی از مهمترين قابليت های XML ، تمايز و تفکيک سندهای Html از داده های مربوطه است . با استفاده از يک پارسر XML ، موجود در مرورگرها ، يک صفحه وب قادر به ايجاد محتوياتی پويا است . در اين زمينه می توان از پتانسيل های جاوااسکريپت بمنظور توليد و ارائه محتويات پويا نيز استفاده کرد . در همين راستا ، امکان استفاده از ASP برا ی ايجاد محتويات پويا با تاکيد بر نقش سرويس دهنده وب نيز وجود دارد . برنامه زير ، داده های موجود در يک سند XML را خوانده و آنها را با فرمت Html در خروجی نمايش خواهد داد .
نمايش داده های موجود در يک سند XMLبا استفاده از جاوااسکريپت |
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM") |
دستيابی به المان ها از طريق نام
رنامه زير داده های موجود در يک سند XML را خوانده و آنها را با فرمت Html در خروجی نمايش خواهد داد .
دستيابی به المان ها د ر يک سند XML از طريق نام و بکمک جاوااسکريپت |
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM") |
..............................
منبع : http://barnamenevis.org/showthread.php?65619
{{Fullname}} {{Creationdate}}
{{Body}}