پارسر (XML Parser)
پارسر XML یعنی «مفسر/خواننده XML». «XML DOM (Document Object Model)» مدل شیءگرا از XML است. مرورگر متن XML را می گیرد، سپس آن را به یک شیء DOM تبدیل می کند. بعد، می توانیم گره ها را مثل یک درخت بخوانیم.
پارسر XML چیست؟
مرورگر یک «پارسر (Parser)» داخلی دارد. این پارسر رشته متن را به «XML DOM» تبدیل می کند. سپس با متدها و ویژگی ها، داده ها را می خوانیم یا ویرایش می کنیم.
تبدیل متن به XML DOM
در این مثال، یک رشته XML ساخته می شود. بعد با DOMParser به DOM تبدیل می شود. سپس عنوان کتاب استخراج می شود.
<html>
<body>
<p id="demo"></p>
<script>
var text;
var parser;
var 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>
گام های عملی
- رشته XML را بساز.
- DOMParser را ایجاد کن.
- با
parseFromStringرشته را به DOM تبدیل کن. - گره موردنظر را با DOM انتخاب کن.
نکته: اگر XML نامعتبر باشد، پارسر خطا تولید می کند. همیشه ورودی را بررسی کن.
responseXML در XMLHttpRequest
شیء «XMLHttpRequest» دو خروجی مهم دارد: responseText رشته خام، و responseXML شیء DOM. وقتی پاسخ XML است، مستقیماً از responseXML استفاده کن.
xmlDoc = xmlhttp.responseXML;
var txt;
var x;
var i;
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
پارسر XML داده خام را «ساختارمند» می کند. سپس با متدهایی مثل getElementsByTagName داده ها را می خوانیم. این کار مدیریت XML را خیلی ساده می کند.
لینک های مرتبط
برای درخواست های سرور، صفحه XMLHttpRequest را ببین. برای کار عمیق با درخت، به XML DOM برو.
جمع بندی سریع
- پارسر، متن را به DOM تبدیل می کند.
- DOM مثل درخت قابل پیمایش است.
DOMParserبرای تبدیل رشته عالی است.responseXMLپاسخ XML را آماده می دهد.