پارسر (DOM Parser)
«خطای پارسر XML» یعنی وقتی «Parser» نتواند XML را درست بخواند. «DOM (Document Object Model)» مدل شی گرای سند است. مرورگر گاهی به جای متن صفحه، یک XML خطا برمی گرداند. پس باید درست پارس کنیم و خروجی را بررسی کنیم.
خطای پارسر XML چیست؟
وقتی XML «well-formed» نباشد، پارسر گیر می کند. سپس مرورگر ممکن است یک سند XML شامل توضیح خطا برگرداند. بنابراین باید نتیجه پارس را بسنجیم و متن یا خطا را نمایش دهیم.
نمونه استفاده از DOMParser با XMLHttpRequest
<script>
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (xhttp.readyState === 4 && xhttp.status === 200) {
var parser;
var xmlDoc;
parser = new DOMParser();
xmlDoc = parser.parseFromString(xhttp.responseText, "text/xml");
document.getElementById("demo").innerHTML = myLoop(xmlDoc.documentElement);
}
};
xhttp.open("GET", "note_error.xml", true);
xhttp.send();
function myLoop(node) {
var i;
var child;
var len;
var txt;
txt = "";
node = node.childNodes;
len = node.length;
for (i = 0; i < len; i++) {
child = node[i];
if (child.nodeType !== 3) {
if (child.childNodes[0] !== undefined) {
txt += myLoop(child);
}
} else {
txt += child.nodeValue + "<br>";
}
}
return txt;
}
<\/script>
گام های عملی (خطای پارسر XML)
- با XHR فایل XML را درخواست کن.
- پس از وضعیت 4 و کد 200، متن را بگیر.
- با
DOMParserرشته را به XML تبدیل کن. - گره ها را پیمایش کن و متن را نشان بده.
نکته: اگر خروجی، پیام خطا بود، یعنی XML ایراد دارد. ابتدا فایل منبع را اصلاح کن و دوباره تست بزن.
ارتباط با مطالب مرتبط
برای فرایند درخواست، بخش XMLHttpRequest را ببین. برای قواعد ساخت صحیح، صفحه XML Syntax را مطالعه کن.
جمع بندی سریع
- خطای پارسر XML یعنی سند بدفرمت است.
DOMParserمتن را به XML تبدیل می کند.- با XHR می توان خطا را دریافت کرد.
- همیشه وضعیت 4 و کد 200 را چک کن.