현재 위치: > 최신 기사 목록> XML_GET_ERROR_CODE 기능을 사용하여 불완전하거나 손상된 XML 데이터 흐름 오류를 처리하는 방법은 무엇입니까?

XML_GET_ERROR_CODE 기능을 사용하여 불완전하거나 손상된 XML 데이터 흐름 오류를 처리하는 방법은 무엇입니까?

M66 2025-06-14

PHP에서 XML 데이터를 처리 할 때 종종 불완전하거나 부패한 XML 데이터 스트림이 발생합니다. 이러한 오류가 제 시간에 캡처되고 처리되지 않으면 프로그램 충돌 또는 데이터 구문 분석 실패가 발생합니다. xml_get_error_code 함수는 개발자가 XML 구문 분석의 오류를 감지하고 찾는 데 도움이되는 유용한 도구입니다. 따라서보다 강력한 XML 처리 로직을 달성합니다.

이 기사는 XML_GET_ERROR_CODE 의 기본 사용법을 소개하고 불완전하거나 부패한 XML 데이터 흐름 오류를 캡처하고 처리하는 방법에 대해 설명합니다.


1. xml_get_error_code 란 무엇입니까?

XML_GET_ERROR_CODE 는 마지막 XML 구문 분석 작업에서 발생한 오류 코드를 얻기 위해 PHP의 XML Parser (LIBXML)에서 제공되는 기능입니다. 이 기능은 일반적으로 xml_parser_createxml_parse 함수와 함께 사용됩니다.

XML 데이터가 불완전하거나 손상되면 파서는 오류가 발생합니다. xml_get_error_code를 사용하면 오류 코드를 얻을 수 있으며 오류 코드를 통해 특정 오류 유형을 쿼리 할 수 ​​있으며 디버깅 및 오류 처리에 편리합니다.


2. xml_get_error_code의 기본 사용

XML_GET_ERROR_CODE는 XML 파서 리소스 핸들을 매개 변수로 전달하고 정수 오류 코드를 반환해야합니다. 기능 프로토 타입은 다음과 같습니다.

 int xml_get_error_code ( resource $parser )

마지막 구문 분석에 오류가 없으면 반환 값은 0 입니다.


3. 불완전하거나 손상된 XML 처리를위한 샘플 코드

다음은 XML_GET_ERROR_CODE를 사용하여 오류를 처리하는 PHP 예입니다. 이 예에서는 의도적으로 손상된 XML 문자열을 전달하고 오류 코드를 캡처하고 오류 메시지를 출력합니다.

 <?php
$xmlData = '<root><item>Test</item><item>Broken'; // 불완전한 XML

$parser = xml_parser_create();
if (!xml_parse($parser, $xmlData, true)) {
    $errorCode = xml_get_error_code($parser);
    echo "XML구문 분석 오류,오류 코드:" . $errorCode . "\n";

    // 통과 할 수 있습니다 error_string 기능 오류 설명을 얻습니다
    $errorString = xml_error_string($errorCode);
    echo "오류 설명:" . $errorString . "\n";
} else {
    echo "XML성공적인 분석!";
}

xml_parser_free($parser);
?>

위의 코드를 실행 한 후 프로그램은 불완전한 XML을 감지하고 해당 오류 코드 및 오류 설명을 출력합니다.


4. 일반적인 오류 코드 및 의미

일반적인 오류 코드 및 그 의미는 다음과 같습니다.

  • 1 ( XML_ERROR_NO_MEMORY ) : 메모리가 불충분합니다

  • 2 ( xml_error_syntax ) : 구문 오류

  • 3 ( xml_error_no_elements ) : 요소가 없습니다

  • 4 ( xml_error_invalid_token ) : 유효하지 않은 태그

  • 5 ( xml_error_unclosed_token ) : 태그가 닫히지 않았습니다

  • 6 ( xml_error_partial_char ) : 부분 문자

  • 7 ( xml_error_tag_mismatch ) : 태그 불일치

  • ... (보다 자세한 오류 코드는 m66.net/manual/en/function.xml-error-string.php 를 참조하십시오).


5. 오류 위치 결합하여보다 정확한 오류 위치를 달성합니다.

PHP는 오류 코드를 얻는 것 외에도 XML_GET_CURRENT_LINE_NUMBERXML_GET_CURRENT_COLUMN_NUMBER를 제공하여 오류가 발생한 위치를 얻습니다. 이러한 기능을 결합하면 오류를 만드는 특정 행의 위치를 ​​용이하게 할 수 있습니다.

 <?php
$xmlData = '<root><item>Test</item><item>Broken';

$parser = xml_parser_create();
if (!xml_parse($parser, $xmlData, true)) {
    $errorCode = xml_get_error_code($parser);
    $errorString = xml_error_string($errorCode);
    $line = xml_get_current_line_number($parser);
    $column = xml_get_current_column_number($parser);

    echo "XML구문 분석 오류,오류 코드:$errorCode\n";
    echo "오류 설명:$errorString\n";
    echo "오류가 발생했습니다 $line 좋아요,1. $column 목록\n";
} else {
    echo "XML성공적인 분석!";
}

xml_parser_free($parser);
?>

6. 요약

xml_get_error_code는 불완전하거나 손상된 XML 데이터 스트림을 처리 할 때 강력한 도우미입니다. 오류 코드를 얻고 오류 위치를 결합하면 문제가 신속하게 위치하여 프로그램 안정성과 사용자 경험을 향상시킬 수 있습니다.

실제 개발에서는 예외 처리 로직, 완전한 오류 캡처 및 XML 데이터의 구문 분석 프로세스에 대한 피드백을 결합하여 데이터 예외로 인한 시스템 충돌 또는 데이터 손실을 피하는 것이 좋습니다.