PHP xml_set_character_data_handler XML 解析器函数

  • 定义和用法

    xml_set_character_data_handler - 设置字符数据处理程序
  • 版本支持

    PHP4 PHP5 PHP7
    支持 支持 支持
  • 语法

    xml_set_character_data_handler (  resource $parser , callable $handler )
    
    设置XML分析器分析器的字符数据处理函数。
  • 参数

    参数 必需的 描述
    parser 对XML解析器的引用,以设置字符数据处理程序功能。
    handler handler是一个字符串,其中包含在解析器调用xml_parse()时必须存在的函数的名称。由处理程序命名的函数必须接受两个参数:handler ( resource $parser , string $data )
    • parser - 第一个参数解析器是对调用处理程序的XML解析器的引用。
    • data - 第二个参数data包含字符数据作为字符串。
    XML文档中的每个文本都调用了字符数据处理程序。 可以在每个片段内多次调用它(例如,对于非ASCII字符串)。 如果将处理程序函数设置为空字符串或FALSE,则该处理程序将被禁用。
    注意:除了函数名,还可以提供包含对象引用和方法名的数组。
  • 返回值

    成功返回TRUE,失败返回FALSE。
  • 示例

    xml_set_element_handler($this->parser, "start_tag", "end_tag");
    xml_set_character_data_handler($this->parser, "contents");
    
    protected function contents($parser, $data)
    {
        switch ($this->current_tag) {
                case "name":
                    if ($this->inside_data)
                        $this->name .= $data; // need to concatenate data
                    else
                        $this->name = $data;
                    break;
             ...
        }
        $this->inside_data = true;
    }
    
    protected function start_tag($parser, $name)
    {
        $this->current_tag = $name;
        $this->inside_data = false;
    }
           
    protected function end_tag() {
        $this->current_tag = '';
        $this->inside_data = false;
    }
    
  • 相关函数

    xml_parser_get_option - 创建具有名称空间支持的XML解析器