获取有关xml解析的详细错误信息

时间:2019-05-10 21:57:11

标签: javascript xml xmlhttprequest

请考虑以下代码:

var fileURL = "example.xml";
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = () => {
  if (xhr.readyState == xhr.DONE && xhr.status == 200) {
    data = xhr.responseXML;
    console.log(data);
  }
}
xhr.open('GET', fileURL);
xhr.send();

如果我的example.xml是不正确的XML(声明节点之前我的换行符是多余的),则xhr.responseXML等于null

很显然,xhr.responseText内部的某个地方被传递给XML解析器,但失败了。我想获取一些更详细的错误信息,例如解析器绊倒的行/列号以及错误类型。

当然,我可以将响应文本显式提供给解析器:

   if (data === null) {
     var parser = new DOMParser();
     var doc = parser.parseFromString(xhr.responseText, "application/xml");
     console.log(doc.getElementsByTagName("parsererror"));
   }

但是DOMParser报告错误的方式很奇怪-它是一个xml节点,带有一些html + css样式的内容。我不确定从此类对象提取错误信息的安全性如何,因为它没有遵循任何特定的标准。

因此,我正在寻找最标准的方法来捕获格式错误的XML错误,并提供尽可能多的详细信息。

0 个答案:

没有答案