WEB DEVELOPER SITE
HTMLCSSJAVASCRIPTSQLPHPBOOTSTRAPJQUERYANGULARXML
 

PHP xml_parse() function


Definition and usage

xml_parse () function parses an XML document.

If successful, the function returns TRUE. If it fails, it returns FALSE.

Syntax

xml_parse (parser, xml, end)

parameters description
parser Required. Specifies the XML parser to use.
xml Required. Specifies the XML data to be parsed
end Optional. If the parameter is TRUE, the data in the "xml" parameter is the last piece of data in the current parse.

Note: Entity errors are reported at the end of the parse and are only displayed if the "end" parameter is TRUE.



Tips and comments

Tip: To create an XML parser, use the xml_parser_create () function.


Instance 1

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 is shown below:

Tove Jani Reminder Don't forget me this weekend!


Examples 2

Using the same XML file but displaying 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 is shown below:

-- Note --
To: Tove
From: Jani
Heading: Reminder
Message: Don't forget me this weekend!