The xml_parse() function parses XML documents.
If successful, the function returns TRUE. If it fails, returns FALSE.
xml_parse(parser,xml,end)
parameter | describe |
---|---|
parser | Required. Specifies the XML parser to use. |
xml | Required. Specifies the XML data to be parsed. |
end | Optional. If this parameter is TRUE, the data in the "xml" parameter is the last piece of data in the current parsing. Note: Entity errors are reported at the end of parsing, and only when the "end" parameter is TRUE. |
Tip: To create an XML parser, use the xml_parser_create() function.
XML file
<?xml version="1.0" encoding="ISO-8859-1"?><note><to>Tove</to><from>Jani</from><heading>Reminder</heading><body>Don 't forget me this weekend!</body></note>
PHP code
<?php$parser=xml_parser_create();function char($parser,$data) { echo $data; }xml_set_character_data_handler($parser,"char");$fp=fopen("test.xml","r") ;while ($data=fread($fp,4096)) { xml_parse($parser,$data,feof($fp)) or die (sprintf("XML Error: %s at line %d", xml_error_string(xml_get_error_code($parser)), xml_get_current_line_number($parser))); }xml_parser_free($parser);?>
The output of the above code looks like this:
Tove Jani Reminder Don't forget me this weekend!
Using the same XML file but displaying the XML data in different ways:
<?php$parser=xml_parser_create();function start($parser,$element_name,$element_attrs) { switch($element_name) { case "NOTE": echo "-- Note --<br />"; break; case "TO": echo "To: "; break; case "FROM": echo "From: "; break; case "HEADING": echo "Heading: "; break; case "BODY": echo "Message: "; } }function stop($parser,$element_name) { echo "<br />"; }function char($parser,$data) { echo $data; }xml_set_element_handler($parser,"start" ,"stop");xml_set_character_data_handler($parser,"char");$fp=fopen("test.xml","r");while ($data=fread($fp,4096)) { xml_parse($parser,$data,feof($fp)) or die (sprintf("XML Error: %s at line %d", xml_error_string(xml_get_error_code($parser )), xml_get_current_line_number($parser))); }xml_parser_free($parser);?>
The output of the above code looks like this:
-- Note --To: ToveFrom: JaniHeading: ReminderMessage: Don't forget me this weekend!