PHP xml_set_notation_decl_handler() 함수

정의와 사용법

xml_set_notation_decl_handler() 함수는 파서가 XML 문서에서 심볼 선언을 찾았을 때 호출되는 함수를 정의합니다.

프로세서가 성공적으로 구성되면 이 함수는 true를 반환하며, 그렇지 않으면 false를 반환합니다.

주석:“심볼 선언”, 영어로는 notation declaration이며, 일부 문헌에서는 “주석 선언”으로 번역됩니다.

문법

xml_set_notation_decl_handler(parser,handler)
매개변수 설명
parser 필수. 사용할 XML 파서를 정의합니다.
handler 필수. 파서가 심볼 선언을 찾았을 때 호출되는 함수를 정의합니다.

handler 매개변수를 정의하는 함수는 다섯 개의 매개변수가 필요합니다:

매개변수 설명
parser 필수. XML 파서를 호출하는 변수를 정의합니다.
name 필수. 실체 이름을 포함하는 변수를 정의합니다.
base

필수. 실체의 시스템 식별자(system_id)의 기초를 포함하는 변수를 정의합니다.

현재 이 매개변수는 일반적으로 공백 문자열로 설정됩니다.

system_id 필수. 실체의 시스템 식별자를 포함하는 변수를 정의합니다.
public_id 필수. 실체의 공통 식별자를 포함하는 변수를 정의합니다.
notation 필수. 데이터 유형을 식별하는 기호를 포함하는 변수를 지정합니다.

설명

handler 파라미터는 또한 객체 참조와 메서드 이름을 포함한 배열일 수 있습니다.

예제

<?php
$parser=xml_parser_create();
function char($parser,$data)
  {
  echo $data;
  }
function not_decl_handler($parser,$not,$base,$sysID,$pubID)
  {
  echo "$not<br />";
  echo "$sysID<br />";
  echo "$pubID<BR />";
  }
xml_set_character_data_handler($parser,"char");
xml_set_notation_decl_handler($parser, "not_decl_handler");
$fp=fopen("test.xml","r");
while ($data=fread($fp,4096))
  {
  xml_parse($parser,$data,feof($fp)) or 
  die (sprintf("XML 오류: %s at line %d", 
  xml_error_string(xml_get_error_code($parser)),
  xml_get_current_line_number($parser)));
  }
xml_parser_free($parser);
?>