ده نکته در رابطه با XML - DOM
    -(4 Body)
|
ده نکته در رابطه با XML - DOM
Visitor
512
Category:
دنياي فن آوري
يکي از مهمترين مفاهيم موجود در رابطه با XML ، تکنولوژي DOM)Document Object Model) است . XML نظير برنامه Word و يا DHTML ( مربوط به شرکت ماکروسافت ) ، داراي يک مدل مبتني بر شي ، براي برنامه نويسي است . در اين مقاله به بررسي ده نکته مهم در رابطه با تکنولوژي XML - DOM خواهيم پرداخت . نکته اول : تکنولوژي DOM ، يکي از ابزارهاي برنامه نويسي موجود بمنظور استقرار يک سند XML در حافظه ، تفسير و پردازش است . ابزار فوق ، اغلب توسط برنامه هاي VB و ASP بمنظور پردازش فايل هاي XML استفاده مي گردد . DOM بمنزله يک شي بوده که برنامه نويسان با استفاده از آن ، امکان فعال نمودن ، ويرايش و ذخيره يک فايل XML را بدست مي آورند . نکته دوم : ساختار داخلي DOM مشابه چيست ؟ ساختار فوق مشابه يک درخت با شاخه ها و برگ هائي است . برخي از شاخه ها ممکن است داراي شاخه هاي ديگري باشند. همانگونه که در مقاله ده نکته در رابطه با XML ، اشاره گرديد ، يک سند XML داراي المان هائي است که مناسب است در اين مقطع و از اين زاويه به آنها شاخه گفته شود. بنابراين DOM شامل مجموعه اي از المان ها است . البته ، اغلب برنامه نويسان به آنها " گره " و يا " گره فرزند " مي گويند. گره ها ممکن است داراي يک مقدار، تهي و يا شامل ساير گره هاي فرزند باشند . المان ، گره ، گره هاي فرزند عملا" در بردارنده مفاهيم مشابه اي مي باشند . نکته سوم : تکنولوژي DOM ، داراي اشياء متفاوتي است . DOMDocument يکي از اشياء موجود بمنظور دستيابي به DOM ( شامل اطلاعات مربوط به سند XML ) است . DOMElement و DOMNode نمونه هائي ديگر از اشياء موجود مي باشند . بمنظور انجام عمليات و پردازش هاي مورد نظر در DOM ، دوازده شي متفاوت پيش بيني شده است . شي DOMDocument ، اولين شي استفاده شده براي فعال نمودن يک سند XML بوده و داراي مجموعه اي از متدها و خصلت ها براي استفاده توسط برنامه نويسان است . مثلا" شي فوق، داراي خصلتي بمنظور بازيابي firstChild ( اولين فرزند ) ، lastChild ( آخرين فرزند ) ، nextSibling ( برادر بعدي ) و previousSibling (برادر قبلي ) است . در حقيقت شي DOMDocument ، تصويري از سند XML را با توجه به قوانين مربوطه در خود نگهداري کرده و با استفاده از خصلت هاي متعدد موجود ، امکان حرکت در طول سند با روش هاي متفاوت ميسر مي گردد . نکته چهارم : شي DOMDocument، داراي تعداد زيادي متد مفيد نيز مي باشد . مثلا" متد insertBefore براي درج يک گره قبل از موقعيت جاري استفاده مي گردد. براي ايجاد يک المان جديد، مي توان از متد createElement استفاده کرد . براي افزودن يک المان جديد به شي DOMDocument مي بايست دو مرحله عمليات را دنبال نمود . مرحله اول : با استفاده از متد createElement المان ايجاد مي گردد ( در اين حالت يک شي DOMNode ، ايجاد مي گردد ) . مرحله دوم : با استفاده از متد appendChild شي DOMNode را به DOMDocument اضافه مي نمائيم . ( DOMDocument و DOMNode دو شي مجزا با عملکردهاي خاص خود مي باشند و نبايد آنها را بمنزله اشياء مشابه در نظر گرفت ) . نکته پنجم : مي توان يک سند XML را به Html ، WML و يا يک سند XML ديگر با يک ساختار متفاوت ، تبديل کرد . براي تحقق خواسته فوق ، مي توان از متد transformNode استفاده کرد . بدين منظور لازم است از دو شي DOMDocument استفاده گردد. يکي از آنها توسط سند XML فعال و ديگري توسط XSL فعال خواهد شد. با استفاده از متد transformNode ، خروجي بصورت يک رشته خواهد بود . رشته فوق شامل نتايج مورد نظر بمنظور استفاده در WML, Html ، متن و يا ساير موارد دلخواه است . نکته ششم : تمام اشياء DOMDocument ، داراي يک گره ريشه مي باشند . گره فوق تنها ريشه موجود بوده که ساير گره ها مستقيما" و يا غير مستقيم به آن متصل مي گردند. در يک سند XML ، دوازده گره متفاوت وجود دارد . NODE_ELEMENT ، NODE_ATTRIBUTE ، NODE_TEXT و NODE_COMMENT نمونه هائي در اين زمينه مي باشند . برخي از گره ها ، داراي فرزند و برخي ديگر فاقد فرزند مي باشند . مثلا" NODE_ELEMENT مي تواند داراي شش فرزند متفاوت ! باشد . ( نگران نباشيد وضعيت فوق در رابطه با يک المان است نه انسان ) و يا NODE_TEXT فاقد فرزند است . نکته هفتم : يکي ديگر از اشياء بسيار مفيد ، شي HTTPRequest مي باشد. شي فوق امکان گفتگوي برنامه هائي که در سمت سرويس گيرنده اجراء مي گردند را با سرويس دهنده وب فراهم مي نمايد . اين شي شامل تمامي روتين هاي مورد نياز بمنظور برقراري ارتباط و مبادله اطلاعات است . پس از ارتباط با سرويس دهنده ، از طريق متدهاي POST و يا GET ، با استفاده از متد Send مي توان يک ارتباط را برقرار کرد. در ادامه با استفاده از خصلت هاي متعددي نظير : responseXML و يا responseText مي توان اقدام به بازيابي XML و يا متن مورد نظرنمود . شي HTTPRequest بهمراه اشياء XML در IE ارائه شده است . نکته هشتم : پاس دادن رشته هاي XML در برنامه ها و بين برنامه ها ، يکي از خواسته هاي مورد نيار است . در اين راستا متدهاي Load و LoadXML ازشي DOMDocument مطرح مي باشند . متد Load، باعث فعال نمودن يک فايل XML شده ، در صورتيکه متد LoadXML يک رشته را فعال مي نمايد . براي توقف فعال نمودن يک سند XML ، مي توان از متد abort استفاده کرد . خصلت parseError يک امکان در دسترس ، براي کنترل خطاء و متد save براي ذخيره نمودن XML بصورت يک فايل استفاده مي گردد . مثلا" در صورتيکه يک رشته XML را که " خوش شکل " نمي باشد ، فعال نمائيم ، خصلت parseError شامل يک کد خطاء بوده و مي توان با استفاده از آن برخورد مناسبي با وضعيت پيش آمده را انجام داد . نکته نهم : يکي از انواع گره هائي که مي توان در يک DOMDocument درج کرد ، DOMProcessingInstruction است . يک PI)Processing Instructing) ، شامل دستورالعمل هائي است که تمايلي به تفسير آنها را نداريم . مثلا" شايد بخواهيم جزئيات مربوط به نسخه خاصي از برنامه RealAudio را که از اطلاعات آن يک المان در سند استفاده مي نمايد ، ارسال نمائيم ، در چنين مواردي مي توان يک دستورالمل PI بصورت زير در سند درج کرد : <?realaudio version"4.0"?> نکته دهم : در صورتيکه قصد ارسال اطلاعاتي را داشته باشيم که شامل عباراتي نظير < ، # و يا > باشد ، و نياز است که آنها را از طريق پارسر ارسال نمائيم ، ( استفاده از حروف فوق باعث بروز خطاي پارسر خواهد شد ) مي توان اطلاعات فوق را در يک گره خاص با نا م NODE_CDATA_SECTION قرار داد . مثلا" عبارت زير مقدار "#91" را بهمراه يک المان استفاده کرده است . پارسر اطلاعات موجود در بخش CDATA را مي خواند ولي آنها را تفسير نخواهد کرد . <house_number><![CDATA[#91]]><house_number> منبع:http://article.mjsoft.ir /خ
|
|
|