با سلام خدمت کاربران گرامی سایت پی وی لرن و علاقمندان و کاربرانی که علاقمند به یادگیری دوره XML هستند. در جلسه گذشته با HttpRequest و کاربرد های آن در XML آشنا شدید. در این جلسه آموزش کار با تجزیه کننده ها در XML را به علاقمندان این دوره ارائه می نماییم.
تمام مرورگرهای اصلی دارای یک تجزیه کننده داخلی ساخته شده در XML هستند که از آن برای دسترسی به XML و دستکاری آن استفاده می کنند.
XML DOM یا (Document Object Model) ویژگی ها و نیز نحوه دسترسی و ویرایش XML را تعریف می کنند.
با این حال، قبل از دسترسی به یک سند XML، باید آن را در یک XML DOM object بارگذاری نمایید.
تمام مرورگرهای مدرن دارای تجزیه کننده ساخته شده در XML هستند که می توانند متن را به یک شیء XML DOM object تبدیل کنند.
در نمونه زیر یک رشته متنی در یک XML DOM object تجزیه می شود و اطلاعات را از آن با جاوا اسکریپت استخراج می کند:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <html> <body> <p id="demo"></p> <script> var text, parser, xmlDoc; text = "<bookstore><book>" + "<title>Everyday Italian</title>" + "<author>Giada De Laurentiis</author>" + "<year>2005</year>" + "</book></bookstore>"; parser = new DOMParser(); xmlDoc = parser.parseFromString(text,"text/xml"); document.getElementById("demo").innerHTML = xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue; </script> </body> </html> |
رشته متنی به صورت زیر تعریف شده است:
1 2 3 4 5 | text = "<bookstore><book>" + "<title>Everyday Italian</title>" + "<author>Giada De Laurentiis</author>" + "<year>2005</year>" + "</book></bookstore>"; |
یک XML DOM ساخته شده است:
1 | parser = new DOMParser(); |
تجزیه کننده با استفاده از رشته متنی یک XML DOM object جدید می سازد:
1 | xmlDoc = parser.parseFromString(text,"text/xml"); |
نسخه های قدیمی اینترنت اکسپلورر (IE5، IE6، IE7، IE8) از شی DOMParser object پشتیبانی نمی کنند.
برای مدیریت نسخه های قدیمی اینترنت اکسپلورر، بررسی کنید که آیا مرورگر از شیء DOMParser object پشتیبانی می کند یا اینکه ActiveXObject را ایجاد می نماید یا خیر.
1 2 3 4 5 6 7 8 9 10 | if (window.DOMParser) { // code for modern browsers parser = new DOMParser(); xmlDoc = parser.parseFromString(text,"text/xml"); } else { // code for old IE browsers xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async = false; xmlDoc.loadXML(text); } |
XMLHttpRequest Object ساخته شده در تجزیه کننده XML است.
ویژگی responseText پاسخ را به عنوان یک رشته بازگردانی می نماید.
ویژگی responseXML پاسخ را به عنوان یک XML DOM object بازگردانی می نماید.
اگر می خواهید پاسخ را به عنوان XML DOM object استفاده نمایید در آن صورت از ویژگی responseXML استفاده نمایید.
در مثال زیر فایل cd_catalog.xml را درخواست نمایید و از XML DOM object به عنوان پاسخ استفاده نمایید.
1 2 3 4 5 6 7 | xmlDoc = xmlhttp.responseXML; txt = ""; x = xmlDoc.getElementsByTagName("ARTIST"); for (i = 0; i < x.length; i++) { txt += x[i].childNodes[0].nodeValue + "<br>"; } document.getElementById("demo").innerHTML = txt; |
در این جلسه با تجزیه کننده ها در XML آشنا شدیم و کار با آن را آموختیم.
در جلسه بعدی به آموزش DOM یا (Document Object Model) خواهیم پرداخت.
با پی وی لرن همراه باشید.