Initialize an XML Expat parser, define some handlers, then parse an XML file


SUBMITTED BY: henry1874w

DATE: June 22, 2017, midnight

FORMAT: Text only

SIZE: 1.3 kB

HITS: 245

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <?php
  5. //Initialize the XML parser
  6. $parser=xml_parser_create();
  7. //Function to use at the start of an element
  8. function start($parser,$element_name,$element_attrs) {
  9. switch($element_name) {
  10. case "NOTE":
  11. echo "-- Note --<br>";
  12. break;
  13. case "TO":
  14. echo "To: ";
  15. break;
  16. case "FROM":
  17. echo "From: ";
  18. break;
  19. case "HEADING":
  20. echo "Heading: ";
  21. break;
  22. case "BODY":
  23. echo "Message: ";
  24. }
  25. }
  26. //Function to use at the end of an element
  27. function stop($parser,$element_name) {
  28. echo "<br>";
  29. }
  30. //Function to use when finding character data
  31. function char($parser,$data) {
  32. echo $data;
  33. }
  34. //Specify element handler
  35. xml_set_element_handler($parser,"start","stop");
  36. //Specify data handler
  37. xml_set_character_data_handler($parser,"char");
  38. //Open XML file
  39. $fp=fopen("note.xml","r");
  40. //Read data
  41. while ($data=fread($fp,4096)) {
  42. xml_parse($parser,$data,feof($fp)) or
  43. die (sprintf("XML Error: %s at line %d",
  44. xml_error_string(xml_get_error_code($parser)),
  45. xml_get_current_line_number($parser)));
  46. }
  47. //Free the XML parser
  48. xml_parser_free($parser);
  49. ?>
  50. </body>
  51. </html>

comments powered by Disqus