XML_PARSE 기능은 XML 데이터를 점차적으로 구문 분석하고 시작 태그, 엔드 태그, 문자 데이터 등과 같은 다양한 이벤트를 트리거하는 이벤트 중심의 구문 분석기입니다.이 기능이 구문 분석 중에 구분되지 않은 태그가 발생하면 일반적으로 구문 분석 오류가 발생하여 구문 분석이 실패합니다.
닫히지 않은 레이블은 일반적으로 다음과 같이 나타납니다.
태그를 닫는 것을 잊어 버렸습니다 . 예를 들어, <태그> 이지만 쓰여지지 않은 </tag> .
닫힌 태그 오타 : 예를 들어, <태그> 이지만 닫힌 태그 쓰기 </tag> , 사례 불일치로 인해 구문 분석이 실패합니다.
루트 태그가 없거나 루트 태그가 없거나 루트 태그가 올바르게 닫히지 않은 경우 일부 XML 데이터로 인해 일부 XML 데이터가 구문 분석 오류로 이어질 수 있습니다.
불완전한 XML 문자열이 미탈 된 태그를 포함한다고 가정합니다.
$xml_string = '<root><item>Item 1</item><item>Item 2</item>';
xml_parse를 사용 하여이 문자열을 구문 분석하면 다음 오류가 발생합니다.
$parser = xml_parser_create();
$xml_data = xml_parse($parser, $xml_string);
if (!$xml_data) {
echo "XML분석이 실패했습니다!";
}
xml_parser_free($parser);
코드는 "XML 파싱 실패!" <루트> 태그가 닫히지 않아 실행 된 경우.
누락 된 태그를 수동으로 보충 : 구문 분석하기 전에 XML 데이터를 확인하고 구부러진 태그를 수동으로 보충 할 수 있습니다.
$xml_string = '<root><item>Item 1</item><item>Item 2</item></root>';
이제 XML 문자열이 완료되었으므로 구문 분석 중에 오류가 발생하지 않습니다.
누락 된 태그를 자동으로 수정 : 수동 수정은 효과적인 방법이지만 XML 데이터가 매우 복잡한 경우 일부 라이브러리 나 메소드를 사용하여 이러한 미탈 된 태그를 자동으로 수정할 수 있습니다.
예를 들어 Libxml 에서 제공하는 libxml_use_internal_errors 함수를 사용하면 구문 분석 중에 오류를 수집하고 고정 할 수 있습니다.
libxml_use_internal_errors(true);
$xml_string = '<root><item>Item 1</item><item>Item 2</item>';
$xml = simplexml_load_string($xml_string);
if ($xml === false) {
foreach(libxml_get_errors() as $error) {
echo "XML실수: " . $error->message;
}
} else {
echo "XML성공적인 분석!";
}
이 예에서는 Simplexml_load_string 이 XML 문자열을로드하고 구문 분석합니다. 구문 분석 오류가 발생하면 libxml_get_errors를 통해 특정 오류 메시지를 반환합니다.
URL 문제 수정 : XML에 URL이 포함되어 있고 URL의 도메인 이름이 일치하지 않으면 오류가 발생하지 않으면 XML을 처리하기 전에 문자열 교체로 도메인 이름을 수정할 수도 있습니다. 예를 들어:
$xml_string = '<root><link>http://old-domain.com/page</link></root>';
$xml_string = str_replace('old-domain.com', 'm66.net', $xml_string);
$xml = simplexml_load_string($xml_string);
이 예에서는 str_replace 함수를 사용하여 XML 문자열의 Old-Domain.com 도메인 이름을 M66.net 으로 바꾸어 구문 분석 중 문제를 피합니다.
태그를 닫지 않는 XML 데이터는 XML_PARSE 기능의 구문 분석이 실패하게됩니다. LIBXML 라이브러리를 사용하여 누락 된 태그를 수동으로 보충하거나 오류를 처리하고 처리 하여이 문제를 효과적으로 해결할 수 있습니다. 동시에 URL이 포함 된 XML 데이터를 처리 할 때 도메인 이름을 확인하고 교체하여 구문 분석이 원활하게 진행될 수 있는지 확인하십시오.
이 기사가 XML 구문 분석에서 태그를 닫지 않는 문제를 해결하는 데 도움이되기를 바랍니다.