PHP xml_set_object XML 解析器函数



  • 定义和用法

    xml_set_object - 在对象内使用XML解析器
  • 版本支持

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

    xml_set_object ( resource $parser , object &$object )
    
    此函数允许在对象内部使用解析器。 可以使用xml_set_element_handler()等设置所有回调函数,并假定它们是对象的方法。
  • 参数

    参数 必需的 描述
    parser 对在对象内部使用的XML解析器的引用。
    object 使用XML解析器的对象。
  • 返回值

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

    class XMLParser
    {
        private $parser;
    
        function __construct() 
        {
            $this->parser = xml_parser_create();
    
            xml_set_object($this->parser, $this);
            xml_set_element_handler($this->parser, "tag_open", "tag_close");
            xml_set_character_data_handler($this->parser, "cdata");
        }
    
        function __destruct()
        {
            xml_parser_free($this->parser);
            unset($this->parser);
        }
    
        function parse($data) 
        {
            xml_parse($this->parser, $data);
        }
    
        function tag_open($parser, $tag, $attributes) 
        {
            var_dump($tag, $attributes); 
        }
    
        function cdata($parser, $cdata) 
        {
            var_dump($cdata);
        }
    
        function tag_close($parser, $tag) 
        {
            var_dump($tag);
        }
    }
    
    $xml_parser = new XMLParser();
    $xml_parser->parse("<A ID='hallo'>PHP</A>");
    
  • 相关函数

    xml_set_start_namespace_decl_handler() - 设置开始命名空间声明处理程序