xml_closures_001.phpt 766 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. --TEST--
  2. XML parser test using closures as callbacks
  3. --EXTENSIONS--
  4. xml
  5. --FILE--
  6. <?php
  7. chdir(__DIR__);
  8. $start_element = function ($xp, $elem, $attribs)
  9. {
  10. print "<$elem";
  11. if (sizeof($attribs)) {
  12. foreach ($attribs as $k => $v) {
  13. print " $k=\"$v\"";
  14. }
  15. }
  16. print ">\n";
  17. };
  18. $end_element = function ($xp, $elem)
  19. {
  20. print "</$elem>\n";
  21. };
  22. $xp = xml_parser_create();
  23. xml_parser_set_option($xp, XML_OPTION_CASE_FOLDING, false);
  24. xml_set_element_handler($xp, $start_element, $end_element);
  25. $fp = fopen("xmltest.xml", "r");
  26. while ($data = fread($fp, 4096)) {
  27. xml_parse($xp, $data, feof($fp));
  28. }
  29. xml_parser_free($xp);
  30. ?>
  31. --EXPECT--
  32. <root id="elem1">
  33. <elem1>
  34. <elem2>
  35. <elem3>
  36. <elem4>
  37. </elem4>
  38. </elem3>
  39. </elem2>
  40. </elem1>
  41. </root>