The xml_set_object() function allows a parser to be used within an object.
PHP xml_set_object() Function has the following syntax.
xml_set_object(parser,object)
Parameter | Is Required | Description |
---|---|---|
parser | Required. | XML parser to use |
object | Required. | Object to set the parser to |
This function returns TRUE on success, or FALSE on failure.
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();
?>