當前位置: 首頁> 函數類別大全> xml_set_external_entity_ref_handler

xml_set_external_entity_ref_handler

設置外部實體引用處理程序
名稱:xml_set_external_entity_ref_handler
分類:XML解析器
所屬語言:php
一句話介紹:為XML 解析器設置外部實體引用處理程序。

定義和用法

xml_set_external_entity_ref_handler()函數用於指定當解析器在XML 文檔中找到外部實體時要調用的函數。

注意: handler參數也可以是一個包含對象引用和方法名稱的數組。

實例

創建一個XML 解析器,設置字符數據處理程序,設置外部實體引用處理程序,並解析XML 文檔:

 <?php
// 創建XML 解析器
$parser = xml_parser_create ( ) ;

function char ( $parser , $data ) {
  echo $data ;
}

function ext_ent_handler ( $parser , $ent , $base , $sysID , $pubID ) {
  echo " $ent <br>" ;
  echo " $sysID <br>" ;
  echo " $pubID <br>" ;
}

// 設置字符數據處理程序
xml_set_character_data_handler ( $parser , "char" ) ;

// 設置外部實體引用處理程序
xml_set_external_entity_ref_handler ( $parser , "ext_ent_handler" ) ;

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

while ( $data = fread ( $fp , 4096 ) ) {
  // 解析XML 數據
  xml_parse ( $parser , $data , feof ( $fp ) ) or
  die ( sprintf ( "XML 錯誤:%s 在第%d 行" ,
  xml_error_string ( xml_get_error_code ( $parser ) ) ,
  xml_get_current_line_number ( $parser ) ) ) ;
}

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

運行實例

文法

xml_set_external_entity_ref_handler ( parser , handler )
參數 描述
parser 必需。指定要使用的XML 解析器
handler

必需。指定用作事件處理程序的函數。該函數必須接受五個參數:

  • $parser - 包含調用處理程序的XML 解析器的變量
  • $name - 包含外部實體名稱的變量
  • $base - 用於解析外部實體的系統標識符(system_id)的基礎。目前,這始終是空字符串
  • $system_id - 實體聲明中指定的系統標識符
  • $public_id - 實體聲明中指定的公共標識符
同類函數
熱門文章