burge124 Posted March 16, 2008 Share Posted March 16, 2008 hi, i have this piece of code that reads an xml document and echos the content of each CDATA. <?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 "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 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("test.xml","r"); //Read data 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))); } //Free the XML parser xml_parser_free($parser); ?> how can i then assign each echoed output to a variable so that i can later add that into the database/manipulate? many thanks ian Link to comment https://forums.phpfreaks.com/topic/96432-retreiving-xml-data/ Share on other sites More sharing options...
Barand Posted March 16, 2008 Share Posted March 16, 2008 You could store them in an array. I wouldn't normally propose globals but not much choice here <?php $mydata = array(); ... //Function to use when finding character data function char($parser,$data) { global $mydata; $mydata[] = $data; echo $data; } ... ?> Link to comment https://forums.phpfreaks.com/topic/96432-retreiving-xml-data/#findComment-493580 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.