در این قسمت می خواهیم با پارسر xml dom آشنا می شویم.
پارسر = تجزیه کننده
بیشتر مرورگرها در دل خود دارای یک تجزیه کننده هستند که از ا ن برای خواندن و اجرا کردن سندهای xml استفاده می کنند
وظیفه پارسر چیست ؟
وظیفه پارسر این است یک شی جاوا اسکریپت می سازد و با ان می تواند به سند xml دست داشته باشد
XML DOM دارای توابعی است که با استفاده از انها می تواند به node های مختلف درخت xml دسترسی داشته باشد و به کمک ان توابع می تواند node هایی را به این درخت اضافه کرده یا حذف نماید
قبل از اینکه بتوان به یک سند xml دسترسی داشت و محتوای ان را مدیریت کرد باید
ابتدا :
سند xml با استفاده از یک شی از نوع xml dom بار گذاری شود
یک پارسر xml ابتدا یک سند xml را می خواند
سپس
انرا به یک شی از نوع xml dom تبدیل می کند
که
این شی می تواند توسط جاوا اسکریپت بکار گرفته شود
بار گذاری کردن سند XML
قطعه برنامه زیر به زبان جاوا اسکریپت نوشته شده است و کار ان این است که سند XML به نام BOOKS.XML را بار گذاری می کند
if (window.XMLHttpRequest)
{
xhttp=new XMLHttpRequest();
}
else // IE 5/6
{
xhttp=new ActiveXObject(“Microsoft.XMLHTTP”);
}
xhttp.open(“GET”,”books.xml”,false);
xhttp.send();
xmlDoc=xhttp.responseXML;
البته من کد بالا را بسیار کامل در آموزش XPATH توضیح داده ام لذا دیگر توضیح جامع نمی دهم فقط به طور کلی می گویم که :
دستورات IF و ELSE با توجه یه نوع مرورگری که کاربر در حا ل کار با ان است ، شی XML DOM را می سازد
نام این شی در مثال بالا ، xhttp است
سه دستور بعدی هم مربوط به ارسال تقاضا از مرورگر کاربر به سرور وب است که ما فایل BOOKS.XML را می خواهیم
و همچنین پاسخ سرور در این سه دستور قرار دارد
( البته برای اموزش XML DOM شما فعلا نیازی به درک کامل دستورات بالا ندارید )
بار گذاری کردن یک رشته xml
قطعه کد زیر ، یک رشته xml را بار گذاری و تجزیه می کند
if (window.DOMParser)
{
parser=new DOMParser();
xmlDoc=parser.parseFromString(text,”text/xml”);
}
else // Internet Explorer
{
xmlDoc=new ActiveXObject(“Microsoft.XMLDOM”);
xmlDoc.async=false;
xmlDoc.loadXML(text);
}
مرورگر IE از متد loadXML برای تجزیه کردن رشته XML استفاده می کند
در حالیکه سایر مرورگرها از شی DOMParser برای این کار استفاده می کنند
چند نکته :
برای حفظ امنیت بیشتر ، بیشتر مرورگرها اجازه دسترسی از راه DOMAIN را نمی دهند
این یعنی اینکه هم صفحه وب HTML و هم فایل XML باید هر دو روی یک سرور قرار داشته باشند