PHP | xml_parser_create() Function

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
| <?xmlversion="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 parserxml_set_character_data_handler($parser, "char_print"); // Opening the xml file$filePointer= fopen("gfg.xml", "r"); // Reading xml data from filewhile($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 parserxml_parser_free($parser);fclose($filePointer); // Character handler function for XML parserfunctionchar_print($parser, $data) {    echo$data;} ?> | 
Output:
user123 firstname lastname +91-9876543210 I am John Doe. Live in Kolkata, India.
zambiatek.xml file:
XML
| <?xmlversion="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 outputfunctionstarting_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"functionending_handler($parser, $element_name) {    echo"<br>";}// Character handler function named "char_handler"functionchar_handler($parser, $data) {    echo$data;}// Setting the element handlersxml_set_element_handler($parser,             "starting_handler", "ending_handler");// Setting character data handlerxml_set_character_data_handler($parser, "char_handler");// Opening xml file$fp= fopen("zambiatek.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 parserxml_parser_free($parser);// Closing file streamfclose($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
 
 
				 
					


