parser는 XML 처리를 위해 PHP에 내장된 파서입니다. 해당 작업은 시작 태그, 데이터 읽기 및 종료 태그의 세 가지 이벤트로 구성됩니다.
즉, xml을 처리할 때 시작 태그, 데이터 및 종료 태그가 나타날 때마다 함수는 해당 작업을 수행하여 xml 데이터 변환을 완료합니다.
PHP에서 XML 읽기 관련 함수 소개:
인용:
객체 XML 구문 분석 함수 설명:
요소 xml_set_element_handler() 요소의 시작과 끝
문자 데이터 xml_set_character_data_handler() 문자 데이터의 시작
외부 엔터티 xml_set_external_entity_ref_handler() 외부 엔터티가 나타남
파싱되지 않은 외부 엔터티 xml_set_unparsed_entity_decl_handler() 파싱되지 않은 외부 엔터티가 나타남
처리 명령 xml_set_processing_instruction_handler() 처리 명령이 나타남
표기법 선언 xml_set_notation ( ) 표기의 모습 선언
Default xml_set_default_handler() 핸들러 함수를 지정하지 않는 기타 이벤트
다음은 파서 함수를 사용하여 xml 데이터를 읽는 예입니다.
// 파서 편집기 만들기
$parser = xml_parser_create();
//태그가 트리거될 때 해당 기능을 설정합니다. 여기에 각각 startElement와 endElement가 있습니다($parser, "startElement", "endElement). " );
//데이터를 읽을 때 해당 기능을 설정
xml_set_character_data_handler($parser, "characterData");
$xml_file="1.xml";//읽을 xml 파일을 지정 , URL이 될 수 있습니다
$filehandler = fopen($xml_file, "r");//파일 열기
while ($data = fread($filehandler, 4096))
{
xml_parse( $parser , $data, feof($filehandler))
}//처리할 때마다 4096바이트를 가져옵니다.
fclose($filehandler)
//파서 파서를 닫고 해제합니다.
xml_parser_free ($parser);
$name=false;
$position=false;//시작 태그 이벤트 기능
function startElement($parser_instance, $element_name, $attrs)
{
전역 $name,$position
if($element_name=="NAME"){
$name=true
$position=false
echo "이름:";
}
if($element_name=="POSITION"){
$name=false;
$position=true
echo "웹사이트:"
}
//데이터를 읽을 때의 함수
function CharacterData($parser_instance, $xml_data)
{
global $name,$position
if($position)
echo $xml_data ."
";
if($name)
echo $xml_data."
"
}
//태그 이벤트 함수 종료
function endElement($ 파서_인스턴스, $element_name)
{
전역 $name,$position
$name=false
?> >
xml 파일 코드는 다음과 같습니다.
직원>
<이름>웹사이트 URL
🎜>직원>