DOM 파서 오류
XML DOM 파서 오류
Firefox는 파서 오류가 발생하면 오류가 포함된 XML 문서를 로드합니다.
Firefox의 파서 오류
XML 문서를 열려고 하면 파서 오류가 발생할 수 있습니다.
Internet Explorer와 달리 Firefox는 오류가 발생하면 오류 설명이 포함된 XML 문서를 로드합니다.
XML 오류 문서의 루트 노드 이름은 "parsererror"입니다. 오류를 확인하는 데 사용됩니다.
XML 오류
아래 코드에서는 파서에게 잘못된 형식의 XML 문서를 로드하도록 요청합니다.
(XML 튜토리얼에서 올바른 형식의 유효한 XML에 대해 자세히 알아볼 수 있습니다.)
Example
<html> <body> <script> 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, "<"); document.write(errStr); } else { document.write("XML is valid"); } </script> </body> </html>
Run Instance»
온라인 예제를 보려면 "인스턴스 실행" 버튼을 클릭하세요
XML 파일 보기: note_error.xml
예제 설명:
XML 파일 로드
루트 노드의 노드 이름이 "parsererror"인지 확인
오류 문자열을 변수 "errStr"
오류 문자열을 HTML
에 쓰기 전에 "<" 문자를 "<"로 바꾸세요. 참고: 실제로 Internet Explorer에서만 DTD, Firefox를 사용하여 XML을 확인합니다. 그렇지 않습니다.
크로스 브라우저 오류 검사
여기서 Internet Explorer 및 Firefox에서 파서 오류를 검사하는 XML 로딩 기능을 만듭니다.
Example
<html> <head> <script> 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); } </script> </head> <body> <script> xmlDoc=loadXMLDocErr("note_error.xml"); </script> </body> </html>
예제 실행»
"인스턴스 실행" 버튼을 클릭하여 온라인 인스턴스 보기
XML 파일 보기: note_error.xml
예제 설명 - Internet Explorer:
첫 번째 줄은 빈 Microsoft XML 문서 개체를 생성합니다.
두 번째 줄은 비동기 로딩을 꺼서 문서가 완전히 로드될 때까지 파서가 스크립트를 계속 실행하지 않도록 합니다.
세 번째 줄은 파서에게 "note_error.xml"이라는 XML 문서를 로드하라고 지시합니다.
parseError 개체의 ErrorCode 속성이 "0"과 다른 경우 오류를 경고하고 함수를 종료합니다.
ErrorCode 속성이 "0"이면 XML 문서를 반환합니다.
예제 설명 - Firefox:
첫 번째 줄은 빈 XML 문서 개체를 만듭니다.
두 번째 줄은 비동기 로딩을 꺼서 문서가 완전히 로드될 때까지 파서가 스크립트를 계속 실행하지 않도록 합니다.
세 번째 줄은 파서에게 "note_error.xml"이라는 XML 문서를 로드하라고 지시합니다.
반환된 문서가 잘못된 문서인 경우 오류를 알리고 기능을 종료하세요.
그렇지 않은 경우 XML 문서를 반환하세요.