An XML File
Posted by tutor | Posted in PHP Tutorial | Posted on 22-12-2009-05-2008
0
An XML file looks like this:
<message>
<sentto>Tutor</sentto>
<sentby>Goweb99</sentby>
<subject>Tutorial</subject>
<content>This is a good tutorial!</content>
</message>
Initializing the XML Parser
We need to first initialize the XML parser in PHP, then define some handlers for different XML events, and then parse the XML file.
<?php
//Initialize the XML parser
$parser=xml_parser_create();
//Function to use at the start of an element
function start($parser,$element_name,$element_attrs)
{
switch($element_name)
{
case “MESSAGE”:
echo “…………Message………….<br />”;
break;
case “SENTTO”:
echo “Meant for: “;
break;
case “SENTBY”:
echo “Msg From: “;
break;
case “SUBJECT”:
echo “Subject: “;
break;
case “CONTENT”:
echo “Message: “;
}
}
//Function to use at the end of an element
function stop($parser,$element_name)
{
echo “<br />”;
}
//Function to use when finding character data
function char($parser,$data)
{
echo $data;
}
//Specify element handler
xml_set_element_handler($parser,”start”,”stop”);
//Specify data handler
xml_set_character_data_handler($parser,”char”);
//Open XML file
$fp=fopen(”sample.xml”,”r”);
//Read data
while ($data=fread($filePointer,4096))
{
xml_parse($parser,$data,feof($filePointer)) or
die (sprintf(”XML Error: %s at line %d”,
xml_error_string(xml_get_error_code($parser)),
xml_get_current_line_number($parser)));
}
//Free the XML parser
xml_parser_free($parser);
?>
–Message–
Meant for:Tutor
Msg From:Goweb99
Subject: Tutorial
Message: This is a good tutorial!
The above example works as:
- Initialize the XML parser with the xml_parser_create() function
- Create functions to use with the different event handlers
- Add the xml_set_element_handler() function to specify which function will be executed when the parser encounters the opening and closing tags
- Add the xml_set_character_data_handler() function to specify which function will execute when the parser encounters character data
- Parse the file “test.xml” with the xml_parse() function
- In case of an error, add xml_error_string() function to convert an XML error to a textual description
- Call the xml_parser_free() function to release the memory allocated with the xml_parser_create() function
