Latest web development tutorials

Ошибка синтаксического анализа XML DOM

Когда Firefox анализатор обнаруживает ошибку, она будет загружать документ XML, который содержит ошибку.


Ошибка синтаксического анализа в Firefox

При попытке открыть документ XML, это может произойти ошибка синтаксического анализа (анализатор ошибок).

И браузеры Internet Explorer, Firefox, если обнаружит ошибку, он загружает документ XML, который содержит ошибку, описанную.

Ошибка XML имя корневого документа "parsererror". Это используется для проверки на наличие ошибок.


Ошибка XML (XML Error)

В следующем коде, мы дадим анализатору загружать плохую форму XML-документов.

(Вы можете в нашем XML учебник Подробнее о хорошей и эффективной форме XML.)

примеров

xmlDoc=document.implementation.createDocument("","",null);
xmlDoc.async=false;
xmlDoc.load("note_error.xml");

if (xmlDoc.documentElement.nodeName=="parsererror")
{
errStr=xmlDoc.documentElement.childNodes[0].nodeValue;
errStr=errStr.replace(/</g, "&lt;");
document.write(errStr);
}
else
{
document.write("XML is valid");
}

Попробуйте »

См XML файл: note_error.xml

Примеры объяснить:

  1. Загрузка файла XML
  2. Проверьте, правильно ли имя корневого узла "parsererror"
  3. Строка ошибки переменной загрузки "ErrStr"
  4. Перед тем как строка ошибки записывается в HTML, то символ "<" заменяется на "& л;"

Примечание: На самом деле, только Internet Explorer будет проверять ваш XML с DTD, Firefox не будет.


Кросс-браузерная проверка ошибок

Здесь мы создаем функцию XML-загрузчик, проверьте синтаксической ошибке в Internet Explorer и Firefox:

примеров

function loadXMLDocErr(dname)
{
try //Internet Explorer
{
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=false;
xmlDoc.load(dname);

if (xmlDoc.parseError.errorCode != 0)
{
alert("Error in line " + xmlDoc.parseError.line +
" position " + xmlDoc.parseError.linePos +
"nError Code: " + xmlDoc.parseError.errorCode +
"nError Reason: " + xmlDoc.parseError.reason +
"Error Line: " + xmlDoc.parseError.srcText);
return(null);
}
}
catch(e)
{
try //Firefox
{
xmlDoc=document.implementation.createDocument("","",null);
xmlDoc.async=false;
xmlDoc.load(dname);
if (xmlDoc.documentElement.nodeName=="parsererror")
{
alert(xmlDoc.documentElement.childNodes[0].nodeValue);
return(null);
}
}
catch(e) {alert(e.message)}
}
try
{
return(xmlDoc);
}
catch(e) {alert(e.message)}
return(null);
}

Попробуйте »

См XML файл: note_error.xml

Примеры объяснить - Internet Explorer:

  1. Первая строка создает пустой объект документа Microsoft XML.
  2. Вторая строка отключает асинхронной загрузки, чтобы гарантировать, что анализатор не будет продолжать выполнение сценария, прежде чем полностью загружен документ.
  3. Третья строка указывает анализатор для загрузки XML-документ, который называется "note_error.xml" из.
  4. Если объект ErrorCode свойство parseError и "0" отличается, и напомнить неправильный выход.
  5. Если ErrorCode свойство на "0", и возвращает документ XML.

Примеры объяснить - Firefox:

  1. Первая строка создает пустой объект XML-документ.
  2. Вторая строка отключает асинхронной загрузки, чтобы гарантировать, что анализатор не будет продолжать выполнение сценария, прежде чем полностью загружен документ.
  3. Третья строка указывает анализатор для загрузки XML-документ, который называется "note_error.xml" из.
  4. Если возвращение документа ложный документ, напомнив об ошибке и завершить работу.
  5. Если нет, то она возвращает документ XML.