Funguo ya xml_set_object() ya PHP

mifano na matumizi

xml_set_object() inaruhusiwa kufanyishwa kwa kikundi cha uandishi katika kikundi.

mabaki ya lugha

xml_set_object(parser,kikundi)
mashirika mawazo
parser inayohitajika. Inasababisha kufanyishwa kwa kikundi cha uandishi cha XML.
kikundi inayohitajika. Inasababisha kufanyishwa kwa kikundi cha uandishi.

mawazo

mfano huu parser inayotumiwa katika kikundi kikundi kina kila mbinguni (callback function) kinaweza kufanyishwa na xml_set_element_handler() na mengineo, yana wakilika kikundi metodi ya kikundi.

mwingiliano

<?php
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))
      {
      //If error
      die( print "ERROR: "
      . xml_error_string(xml_get_error_code($this->xmlparser))
      . "<br />Line: "
      . xml_get_current_line_number($this->xmlparser)
      . "<br />Column: "
      . xml_get_current_column_number($this->xmlparser)
      . "<br />");
      }
    }
  }
function start_tag($xmlparser, $tag, $attributes)
  { 
  print $tag . "<br />"; 
  }
function end_tag(){}
function char($xmlparser,$data)
  {
  echo $data . "<br />";
  }
function close_Parser()
  {
  xml_parser_free($this->xmlparser);
  }
} 
$myxmlparser = new XMLParser();
$myxmlparser->parse_File("test.xml");
$myxmlparser->close_parser();
?>