توابع xml_set_object() در PHP

تعریف و استفاده

توابع xml_set_object() اجازه می‌دهد تا کارشناس XML را در یک شیء استفاده کنیم.

نحوه‌ی نوشتن

xml_set_object(کارشناس,شیء)
پارامترها توضیحات
کارشناس ضروری. کارشناس XML مورد استفاده.
شیء ضروری. شیء تعیین شده برای تنظیم کارشناس.

توضیحات

این توابع کارشناس این کارشناس می‌تواند در شیء همه‌ی توابع بازگشتی (callback function) موجود در شیء می‌توانند توسط xml_set_element_handler() و سایر توابع تنظیم شوند، که به عنوان شیء روش‌های موجود در شیء.

مثال

<?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();
?>