تجزیه کننده xml
یادگیری XMLتمام مرورگر های اصلی یک تجزیه کننده xml داخلی دارند تا بتوانند به xml دسترسی داشته باشند و با آن تعامل برقرار کنند.
تجزیه کننده xml
DOM یا همان Document Object Model ، ویژگی ها و روش های دسترسی و ویرایش XML را تعریف می کند.
با این حال، قبل از دسترسی به یک سند XML، باید آن را به یک شیء XML DOM بارگیری کند.
تمام مرورگرهای مدرن دارای تجزیه کننده داخلی XML هستند که می توانند متن را به یک شی XML DOM تبدیل کنند.
تجزیه یک رشته از متن
این مثال یک رشته متن را به یک شیء XML DOM تجزیه می کند و با استفاده ازجاوا اسکریپت اطلاعات را از آن استخراج می کند:
<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>
مشاهده مثال
تشریح مثال
ابتدا یک رشته متن تعریف می شود :
"<title>Everyday Italian</title>" +
"<author>Giada De Laurentiis</author>" +
"<year>2005</year>" +
"</book></bookstore>";
یک تجزیه کننده XML DOM ایجاد می شود :
تجزیه کننده یک شی XML DOM جدید با استفاده از رشته متن ایجاد می کند:
نسخه های قدیمی اینترنت اکسپلورر
نسخه های قدیمی اینترنت اکسپلورر (IE5، IE6، IE7، IE8) از شی DOMParser پشتیبانی نمی کنند.
برای مدیریت نسخه های قدیمی اینترنت اکسپلورر، بررسی کنید که آیا مرورگر از شی DOMParser پشتیبانی می کند یا اینکه ActiveXObject را ایجاد کنید:
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
شی XMLHttpRequest یک تجزیه کننده xml داخلی دارد.
ویژگی responseText پاسخ را به عنوان یک رشته باز می گرداند.
ویژگی responseXML پاسخ را به عنوان یک شی XML DOM باز می گرداند.
اگر می خواهید از این پاسخ به عنوان یک شی XML DOM استفاده کنید، می توانید از ویژگی responseXML استفاده کنید.
xmlDoc = xmlhttp.responseXML;
txt = "";
x = xmlDoc.getElementsByTagName("ARTIST");
for (i = 0; i < x.length; i++) {
txt += x[i].childNodes[0].nodeValue + "
";
}
document.getElementById("demo").innerHTML = txt;
مشاهده مثال
نظر شما
>