PHP xml_set_object() Function

In this chapter you will learn:

  1. Description for PHP xml_set_object() Function
  2. Syntax for PHP xml_set_object() Function
  3. Parameter for PHP xml_set_object() Function
  4. Return for PHP xml_set_object() Function
  5. Example - Use Parser as an object

Description

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>//  j a  va2s.  co m
    <name>PHP</name>
    <name>Java</name>
</Book>

Use Parser as an object


<?php/* j ava2  s  .c o  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();
?>

Next chapter...

What you will learn in the next chapter:

  1. Description for PHP xml_set_processing_instruction_handler() Function
  2. Syntax for PHP xml_set_processing_instruction_handler() Function
  3. Parameter for PHP xml_set_processing_instruction_handler() Function
  4. Return for PHP xml_set_processing_instruction_handler() Function
  5. Example - specifies a function to be called when the parser finds a processing instruction in the XML document