XML DOM 튜토리얼로그인
XML DOM 튜토리얼
작가:php.cn  업데이트 시간:2022-04-13 15:27:56

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

예제 설명:

  1. XML 파일 로드

  2. 루트 노드의 노드 이름이 "parsererror"인지 확인

  3. 오류 문자열을 변수 "errStr"

  4. 오류 문자열을 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:

  1. 첫 번째 줄은 빈 Microsoft XML 문서 개체를 생성합니다.

  2. 두 번째 줄은 비동기 로딩을 꺼서 문서가 완전히 로드될 때까지 파서가 스크립트를 계속 실행하지 않도록 합니다.

  3. 세 번째 줄은 파서에게 "note_error.xml"이라는 XML 문서를 로드하라고 지시합니다.

  4. parseError 개체의 ErrorCode 속성이 "0"과 다른 경우 오류를 경고하고 함수를 종료합니다.

  5. ErrorCode 속성이 "0"이면 XML 문서를 반환합니다.

예제 설명 - Firefox:

  1. 첫 번째 줄은 빈 XML 문서 개체를 만듭니다.

  2. 두 번째 줄은 비동기 로딩을 꺼서 문서가 완전히 로드될 때까지 파서가 스크립트를 계속 실행하지 않도록 합니다.

  3. 세 번째 줄은 파서에게 "note_error.xml"이라는 XML 문서를 로드하라고 지시합니다.

  4. 반환된 문서가 잘못된 문서인 경우 오류를 알리고 기능을 종료하세요.

  5. 그렇지 않은 경우 XML 문서를 반환하세요.


PHP 중국어 웹사이트