حالا می خواهیم ببینیم چطور می توان در داخل یک برنامه html به اطلاعات درون تگ های سند xml دسترسی داشت

 
  برای دسترسی به اطلاعات دورون فایل xml از شی ای به نام XMLHttpRequest   استفاده می شود و یک اشاره گر به فایل xml ایجاد می کنیم
 
 این شی یکی از اشیای جاوا اسکریپت است و باید ابتدا  متغیری از نوع ان شی تعریف کنیم
روش متفاوت مرورگرها برای  اتصال به فایل xml
ما مرورگرها را به دو دسته تقسیم می کنیم :
 1- مرورگر IE
 2- مرورگرهای  پیشرفته که شامل مرورگرهایی  مثل  فایر فاکس و کروم و سفاری و اپرا هستند
 
جاوا اسکریپت برای اتصال به  فایل xml  در هر دسته از مرورگرها دستوری جدا گانه دارد
 که در ادامه با انها اشنا می شویم
 
دستور جاوا اسکریپت برای ایجاد اشاره گر به  فایل xml در مرورگرهای پیشرفته

 

var xmlhttp=new XMLHttpRequest()

 
 در دستور بالا اشاره به چند نکته ضرور ی ا ست :
 1- دستور تعریف متغیر در زبان جاوا اسکریپت var می باشد
 2- در اینجا کلمه xmlhttp یک اسم اختیاری است . همان متغیری است که می خواهیم از نوع شی XMLHttpRequest تعریف شود
 3- هر گاه بخواهید متغیری از نوع شی ای تعریف کنید باید قبل از نام ان شی عبارت new را قرار دهید
 
 کسانیکه با زبان c اشنایی دارند می دانند که مفهوم تعریف کلاس چیست و اینکه تعریف متغیرهایی از نوع کلاس به چه معناست
 
 پس دستور بالا باعث می شود هرگاه برنامه ما در یک مرورگر پیشرفته که قبلا اسم انها را گفتم ، در حال اجرا باشد بتواند به فایل xml ای متصل شود و از داده های نوشته شده در ان فایل استفاده نماید
 
دستور جاوا اسکریپت برای ایجاد اشاره گر به  فایل xml در مرورگرهای IE

 

var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")

 
  در دستور بالا اشاره به چند نکته ضرور ی ا ست :
  1- دستور تعریف متغیر در زبان جاوا اسکریپت var می باشد
  2- در اینجا کلمه xmlhttp یک اسم اختیاری است . همان متغیری است که می خواهیم از نوع شی ActiveXObjectتعریف شود
  3- هر گاه بخواهید متغیری از نوع شی ای تعریف کنید باید قبل از نام ان شی عبارت new را قرار دهید
  پس دستور بالا باعث می شود هرگاه برنامه ما در یک مرورگر IE  در حال اجرا باشد بتواند به فایل xml ای متصل شود و از داده های نوشته شده در ان فایل استفاده نماید
 
تشخیص  نوع مرورگر کاربر
 این سوال برایمان پیش می اید که برنامه ما چگونه تشخیص دهد که هم اکنون کاربر با کدام نوع مرورگر در حال مشاهده صفحه وب ما می باشد تا بر طیق ان مرورگر ، اشاره گر  اتصال به فایل XML تعریف شود
 برای این کار ما دستورات جاوا اسکریپتی داریم که از انها در شرط دستور IF و ELSE استفاده می کنیم
 دستورات در ادامه  نوشته شده است :

 

if (window.XMLHttpRequest)

  {

 

  }

else

  {

 

}

 window.XMLHttpRequest  مشخص می کند که ایا مرورگر کاربر از نوع پیشرفته است ؟
 

 حالا باید بگوئیم اگر جواب این شرط بله است ، اشاره گری از نوع شی XMLHttpRequest ایجاد شود در غیر این صورت

کاربر در حال استفاده از مرورگرهای IE می باشد

پس باید

اشاره گری از نوع شی ActiveXObject تعریف کنیم

 
 دستورات کامل شده :

 

if (window.XMLHttpRequest)

  {

  xmlhttp=new XMLHttpRequest();

  }

else

  {

  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");

  }

 
روش ارسال تقاضا برای اتصال به فایل XML مورد نظر
 ما تا این لحظه فقط اشاره گری از نوع شی اتصال به فایل XML تعریف کردیم
 اما هنوز به فایل BOOK.XML وصل نشده ایم
اگر به خاطر داشته باشید ، تابع loadXMLDoc  دارای یک پارامتر به نام dname بود
 که قرار شد هنگام صدا زدن این تابع ، اسم فایل XML ای که می خواهیم به داده های درونش دسترسی داشته باشیم برای این پارامتر ارسال کنیم
با استفاده از اشاره گری که برای وصل شدن به فایل xml ساختیم و  با فرض اینکه نام فایل xml مورد نظر در پارامتر dname است دستوری می نویسیم که به این فایلی که نام ان در dname است وصل شویم :

 

xmlhttp.open("GET",dname,false);

xmlhttp.send("");

 
 درباره دستورات بالا ذکر چند نکته ضروری است :
 1- دستور OPEN برای اتصال به فایل XML ای  است که نام ان در DNAME وجود دارد
 2- SEND یعنی تقاضا ارسال شده و خاتمه تنظیمات تقاضا
 3- همانطور که مشاهده می شود متغیری که از نوع شی XMLHttpRequest یا ActiveXObjec تعریف کرده ایم ، دارای تمام متدهای لازم برای برقراری یک ارتباط خوب با فایل مورد نظر می باشد
 
 بقیه پارامترهای دستور OPEN را در بخش اموزش اژاکس گفته ام
 
 برنامه تا این لحظه :
 

 

<!DOCTYPE html>

<html>

<body>

<script>

function loadXMLDoc(dname)

{

if (window.XMLHttpRequest)

  {

  xhttp=new XMLHttpRequest();

  }

else

  {

  xhttp=new ActiveXObject("Microsoft.XMLHTTP");

  }

 

 

xhttp.open("GET",dname,false);

xhttp.send("");

}

 

</script>

 

</body>

</html>

 
 ادامه در فصل بعد ....