background image

 

而 endElementHandler 参数包括了解析代码及名称二个参数。若无错误则返

 

回 true 值。
  4. xml_set_character_data_handler
  boolean xml_set_character_data_handler(int parser, string 
handler);

 

  本函数配置字符资料的标头。参数 parser 

 

为解析代码。参数 handler 包

 

括解析代码及资料字符串等二个元素。若无错误则返回 true 值。
  5. xml_get_error_code
  int xml_get_error_code(int parser);

 

  本函数可取得 XML 

 

在处理时的错误代码。参数 parser 为解析代码。若 

parser 

 

有错则返回 false 

 

值,否则就返回错误代码 (如 

XML_ERROR_BINARY_ENTITY_REF .... 等等)。
  6. xml_error_string
  string xml_error_string(int code);

 

  本函数可取得 XML 

 

在处理时的错误代码。参数 code 为解析错误代码。若

无错误返回值为代码的文字描述字符串。
  7. xml_get_current_line_number
  int xml_get_current_line_number(int parser);

 

  本函数用来取得目前 XML 

 

解析所正在处理的行号。参数 parser 为解析代

 

码。若 parser 

 

有错则返回 false 值,若无错误则返回行号数字。

  8. xml_parser_free
  boolean xml_parser_free(int parser);

 

  本函数用来释放目前 XML 

 

解析所使用的内存。参数 parser 为解析代码。

 

若没有错误则返回 true 

 

值,否则返回 false 值。

  五、案例解析
  以下是用 PHP5 实现读取一个以 XML 1.0 格式编写的通讯录
address.xml,并显示其内容的示例。详解见有关注释。
 

 //     //第一部分:几个 PHP Helper 函数     
 //      /**********************************      *从一个文件中读取 XML

 

的 * 

*

 

内容到字符串中 *     *********************************/       

function read_file($filename)     
 {     
  //读取文件     $lines=file($filename);    
 //变量$contents 是存放文件内容的变量     $contents="";    
  while(list($key,$value)=each($lines))    
   {     
      $contents.=$value;     
           }     
       return $contents;     
        }    /*********************************     *当 PHP 遇到一个 XML 的起始

 

标记时 *     *

 

调用,其作用是按照一定的层次 *     *显示出 XML

 

的标记 *     **

*******************************/    
   function start_element($parser, $name, $attrs)