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