PHP Tutorial - PHP xml_set_object() Function






The xml_set_object() function allows a parser to be used within an object.

Syntax

PHP xml_set_object() Function has the following syntax.

xml_set_object(parser,object)

Parameter

ParameterIs RequiredDescription
parserRequired.XML parser to use
objectRequired.Object to set the parser to

Return

This function returns TRUE on success, or FALSE on failure.





Example

XML File

<?xml version="1.0" encoding="ISO-8859-1"?>
<Book>
    <name>PHP</name>
    <name>Java</name>
</Book>

Use Parser as an object


<?php//from   w  w  w . ja v a 2 s . co  m
class XMLParser{
    var $xmlparser;
    
    function XMLParser(){
      $this->xmlparser = xml_parser_create();
      xml_set_object($this->xmlparser, $this);
      xml_set_character_data_handler($this->xmlparser,"char");
      xml_set_element_handler($this->xmlparser, "start_tag","end_tag");
    }
    
    function parse($data){
      xml_parse($this->xmlparser, $data);
    }
    
    function parse_File($xmlfile){
      $fp = fopen($xmlfile, 'r');
      while ($xmldata = fread($fp, 4096)){
        if(!xml_parse($this->xmlparser, $xmldata)){
          print "ERROR: ";
          print xml_error_string(xml_get_error_code($this->xmlparser));
          print "Line: ";
          print xml_get_current_line_number($this->xmlparser);
          print "Column: ";
          print xml_get_current_column_number($this->xmlparser);
        }
      }
    }
    
    function start_tag($xmlparser, $tag, $attributes){
      print $tag . "\n";
    }

    function end_tag(){}
    
    function char($xmlparser,$data){
      echo $data . "\n";
    }

    function close_Parser(){
      xml_parser_free($this->xmlparser);
    }
}

$myxmlparser = new XMLParser();
$myxmlparser->parse_File("test.xml");
$myxmlparser->close_parser();
?>