Php/func xml set unparsed entity decl handler

来自菜鸟教程
跳转至:导航、​搜索

PHP xml_set_unparsed_entity_decl_handler()函数

❮PHP XML分析器参考

创建一个XML解析器,设置字符数据处理程序,设置未解析的实体声明处理程序,并解析XML文档:

  <?php
$parser=xml_parser_create();



function char($parser,$data) {

  echo $data;

  }



function unparsed_ent_handler($parser,$entname,$base,$sysID,$pubID,$notname) 
  {

  print "$entname<br>";

  print "$sysID<br>";

  print "$pubID<br>";

  print "$notname<br>";

  }



xml_set_character_data_handler($parser,"char");
// Set up unparsed 
  entity declaration handler

xml_set_unparsed_entity_decl_handler($parser,"unparsed_ent_handler");



$fp=fopen("test.xml","r");



while ($data=fread($fp,4096)) {

  xml_parse($parser,$data,feof($fp)) or 

  die (sprintf("XML Error: %s at line %d", 

  xml_error_string(xml_get_error_code($parser)),

  xml_get_current_line_number($parser)));

  }

xml_parser_free($parser);
fclose($fp);

?>



定义和用法

xml_set_unparsed_entity_decl_handler()函数指定当解析器为XML文档中的未解析实体时要调用的函数。

注意: 该处理程序参数也可以是包含对象引用和方法名称的数组。

句法

xml_set_unparsed_entity_decl_handler(parser, handler)

参数值

参数 描述
parser 需要。指定要使用的XML解析器
handler

需要。指定如果XML解析器遇到带有NDATA声明的外部实体声明时要调用的函数。该函数必须接受六个参数:

  • $ parser-包含调用处理程序的XML解析器的变量
  • $ entity_name-包含实体名称的变量
  • $ base-解决外部实体的系统标识符(system_id)的基础。当前,这始终是一个空字符串
  • $ system_id-外部实体的系统标识符
  • $ public_id-外部实体的公共标识符
  • $ notation_name-该实体的符号名称

技术细节

返回值: 成功则为真。失败时为假
PHP版本: 4.0+

❮PHP XML分析器参考