현재 위치: > 최신 기사 목록> XML_PARSER_GET_OPTION 및 XML_ERROR_STRING을 사용하여 XML 구문 분석 오류를 빠르게 찾는 방법?

XML_PARSER_GET_OPTION 및 XML_ERROR_STRING을 사용하여 XML 구문 분석 오류를 빠르게 찾는 방법?

gitbox 2025-05-29

1. XML_ERROR_STRING - XML ​​구문 분석 오류 메시지를 가져옵니다

xml_error_string 함수는 오류 코드를 기반으로 오류 설명 정보를 반환하는 데 사용됩니다. 일반적으로 XML 파싱 오류는 오류 코드를 반환합니다. 이 함수는 오류 코드를 읽을 수있는 문자열로 변환 할 수 있으므로 오류의 특정 원인을 이해할 수 있습니다.

 <?php
// 오류 코드 예제
$error_code = 5;
echo xml_error_string($error_code);  // 산출:Extra content at the end of the document
?>

2. XML_PARSER_GET_OPTION - XML ​​파서의 현재 상태를 얻으십시오.

XML_PARSER_GET_OPTION을 사용하면 현재 위치, 줄 번호 및 열 번호와 같은 현재 구문 프로그램의 일부 상태 정보를 얻을 수 있으며, 이는 위치 오류에 매우 중요합니다.

일반적으로 사용되는 옵션은 다음과 같습니다.

  • XML_PARSER_OPTION_ERROR_POSITION : 구문 분석 오류가 발생할 때 위치 오프셋을 가져옵니다

  • XML_PARSER_OPTION_LINE_NUMBER : 현재 구식 파서의 줄 번호를 얻으십시오.

  • XML_PARSER_OPTION_COLUMN_NUMBER : 현재 구식 구식의 열 번호 가져 오기


3. 조합 사용 예제

다음은이 두 기능을 사용하여 선 번호, 열 번호 및 XML 구문 분석 오류의 원인을 빠르게 찾는 방법을 보여주는 예입니다.

 <?php
$xml_data = <<<XML
<root>
    <item>Item 1</item>
    <item>Item 2</item>
    <item>Item 3</item> extra
</root>
XML;

$parser = xml_parser_create();

if (!xml_parse($parser, $xml_data, true)) {
    $error_code = xml_get_error_code($parser);
    $error_msg = xml_error_string($error_code);
    $error_line = xml_parser_get_option($parser, XML_PARSER_OPTION_LINE_NUMBER);
    $error_column = xml_parser_get_option($parser, XML_PARSER_OPTION_COLUMN_NUMBER);

    echo "XML 구문 분석 오류:{$error_msg}\n";
    echo "오류가 발생했습니다 {$error_line} 좋아요,1. {$error_column} 목록\n";
}

xml_parser_free($parser);
?>

분석:

  • 이 코드는 오류로 XML을 구문 분석하려고합니다.

  • xml_parse가 false를 반환하면 구문 분석이 실패 함을 의미합니다.

  • xml_get_error_code를 통해 오류 코드를 가져옵니다.

  • xml_error_string을 사용하여 해당 오류 메시지를 받으십시오.

  • XML_PARSER_GET_OPTION을 사용하여 잘못된 줄 번호와 열 번호를 가져와 문제를 정확하게 찾으십시오.

  • 마지막으로 파서 자원을 해제하십시오.


4. 요약

  • xml_error_string을 사용하면 오류 코드를 사람이 읽을 수있는 오류 정보로 변환 할 수 있습니다.

  • xml_parser_get_option 을 통해 현재 파서 상태 (특히 행 및 열 번호)를 얻어 오류를 신속하게 찾으십시오.

  • 이 둘을 결합하면 XML 파싱 오류 디버깅의 효율성을 크게 향상시킬 수 있습니다.

이 두 기능의 사용을 마스터하면 XML 구문 분석 예외에 직면 할 때 문제를 신속하게 찾을 수 있으며 디버깅 시간을 절약하며 개발 효율성을 향상시킬 수 있습니다.