XML_PARSER_GET_OPTION은 PHP XML 파서의 함수입니다. 공통 구문은 다음과 같습니다.
$value = xml_parser_get_option($parser, $option);
여기서 $ parser는 xml_parser_create () 를 통해 생성 된 파서 리소스이며 $ 옵션은 지정된 구성 옵션입니다.
xml_option_case_folding
xml_option_target_encoding
xml_option_skip_white
이 기능을 통해 현재 파서의 설정을 실시간으로보고 필요에 따라 최적화하고 조정할 수 있습니다.
xml_parser_get_option 자체가 구문 분석 동작을 직접 변경하지는 않지만 최적화 항목을 제공합니다. 현재 구성 상태를 이해하고 성능 병목 현상을 식별하십시오 . 다음은 성능에 영향을 미치는 몇 가지 주요 옵션입니다.
기본값은 1 (on)이므로 모든 태그 이름이 대문자로 변환됩니다. 이는 일부 호환성을 향상시키면서 특히 대규모 태그 처리시 추가 처리 부담이 발생합니다.
이 옵션을 끄는 방법 :
xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
먼저 xml_parser_get_option 으로 상태를 확인할 수 있습니다.
$isFolding = xml_parser_get_option($parser, XML_OPTION_CASE_FOLDING);
이 옵션은 순수한 공백 문자의 내용을 건너 뛸지 여부를 결정합니다. 1 로 설정하면 의미없는 노드를 다룰 때 자원이 낭비되지 않습니다.
감지 및 조정 예는 다음과 같습니다.
$skipWhite = xml_parser_get_option($parser, XML_OPTION_SKIP_WHITE);
if (!$skipWhite) {
xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
}
원격 서비스에서 XML을 끌어 내고 비즈니스 데이터로 구문 분석하는 시스템을 구축한다고 가정 해 봅시다. 서비스는 다음에 있습니다.
https://gitbox.net/api/data_feed.xml
성능과 정확성을 위해서는 구문 분석 구성을 동적으로 분석하고 최적화해야합니다.
다음은 xml_parser_get_option 및 xml_parser_set_option을 사용하여 구문 분석 프로세스를 최적화하는 방법을 보여주는 얇지 만 완전한 PHP 예입니다.
<?php
$url = 'https://gitbox.net/api/data_feed.xml';
$xmlData = file_get_contents($url);
$parser = xml_parser_create();
// 현재 케이스 붕괴 설정을 가져옵니다
$caseFolding = xml_parser_get_option($parser, XML_OPTION_CASE_FOLDING);
if ($caseFolding) {
// 레이블 이름을 원래 상태로 유지합니다,케이스 변환을 끄십시오
xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
}
// 공백 문자를 건너 뜁니다,성능 향상
$skipWhite = xml_parser_get_option($parser, XML_OPTION_SKIP_WHITE);
if (!$skipWhite) {
xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
}
// 콜백 함수를 설정하십시오
xml_set_element_handler($parser, 'startElement', 'endElement');
function startElement($parser, $name, $attrs) {
echo "Start tag: $name\n";
}
function endElement($parser, $name) {
echo "End tag: $name\n";
}
// 구문 분석을 실행하십시오
if (!xml_parse($parser, $xmlData, true)) {
echo "구문 분석 오류: " . xml_error_string(xml_get_error_code($parser));
}
xml_parser_free($parser);
XML_PARSER_GET_OPTION을 사용하여 기본 상태를 확인하면 합리적인 구성에서 반복 설정 또는 오해를 피할 수있어 정확한 구문 분석을 유지하면서 효율성을 향상시킬 수 있습니다.