The xml_parser_create() function is an inbuilt function in PHP which is used to create an XML parser.
Syntax:
resource xml_parser_create( string $encoding )
Parameters: This function accepts single parameter $encoding which is optional. It specifies the character encoding:
- for input/output in PHP 4
- only for output from PHP 5
- for 5.0.0 and 5.0.1 default output charset is ISO-8859-1
- from 5.0.2 default output charset is UTF-8
Return Value: This function returns the resource handler which is to be used by some other XML functions on success or False on failure.
Note:
- This function is available for PHP 4.0.0 and newer version.
- These examples may not work on online IDE. So, try to run it on local server or php hosted servers.
gfg.xml file:
HTML
<? xml version = "1.0" encoding = "utf-8" ?>
< user >
< username > user123 </ username >
< name > firstname lastname </ name >
< phone > +91-9876543210 </ phone >
< detail > I am John Doe. Live in Kolkata, India. </ detail >
</ user >
|
Program 1:
PHP
<?php // Create an XML parser $parser = xml_parser_create();
// set the character handler function // for the XML parser xml_set_character_data_handler( $parser , "char_print" );
// Opening the xml file $filePointer = fopen ( "gfg.xml" , "r" );
// Reading xml data from file while ( $data = fread ( $filePointer , 4096)) {
// Parsing XML data
xml_parse( $parser , $data , feof ( $filePointer )) or
// Display error when parse error occurs
die (sprintf( "XML Error: %s at line %d" ,
// Error string
xml_error_string(xml_get_error_code( $parser )),
// Current line
xml_get_current_line_number( $parser ))
);
} // Free to xml parser xml_parser_free( $parser );
fclose( $filePointer );
// Character handler function for XML parser function char_print( $parser , $data ) {
echo $data ;
} ?> |
Output:
user123 firstname lastname +91-9876543210 I am John Doe. Live in Kolkata, India.
geeks.xml file:
XML
<? xml version = "1.0" encoding = "utf-8" ?>
< user >
< username > user123 </ username >
< name > firstname lastname </ name >
< phone > +91-9876543210 </ phone >
< detail > I am John Doe. Live in Kolkata, India. </ detail >
</ user >
|
Program 2:
PHP
<?php // Creating an XML parser $parser = xml_parser_create();
// Element handler function named "starting_handler" // enables custom manipulation for output function starting_handler( $parser ,
$element_name , $element_attrs ) {
switch ( $element_name ) {
case "USER" :
echo "<u>USER DATA</u><br>" ;
break ;
case "USERNAME" :
echo "Username: " ;
break ;
case "NAME" :
echo "Name: " ;
break ;
case "PHONE" :
echo "Phone no: " ;
break ;
case "DETAIL" :
echo "More about user: " ;
}
} // Element handler function named "ending_handler" function ending_handler( $parser , $element_name ) {
echo "<br>" ;
} // Character handler function named "char_handler" function char_handler( $parser , $data ) {
echo $data ;
} // Setting the element handlers xml_set_element_handler( $parser ,
"starting_handler" , "ending_handler" );
// Setting character data handler xml_set_character_data_handler( $parser , "char_handler" );
// Opening xml file $fp = fopen ( "geeks.xml" , "r" );
// Reading xml file while ( $data = fread ( $fp , 4096)) {
xml_parse( $parser , $data , feof ( $fp )) or
// Display error while xml parsing
die (sprintf( "XML Error: %s at line %d" ,
// Error string
xml_error_string(xml_get_error_code( $parser )),
// Error line number
xml_get_current_line_number( $parser ))
);
} // Free to xml parser xml_parser_free( $parser );
// Closing file stream fclose( $fp );
?> |
Output:
USER DATA Username: user123 Name: firstname lastname Phone no: +91-9876543210 More about user: I am John Doe. Live in Kolkata, India.
Reference: https://www.php.net/manual/en/function.xml-parser-create.php