summaryrefslogtreecommitdiff
path: root/ext/xml/tests/xml_parse_into_struct_variation.phpt
blob: eadc3edc944206c47334f4bf6e6161ce755640ab (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
--TEST--
Test xml_parse_into_struct() function : variation
--SKIPIF--
<?php
if (!extension_loaded("xml")) {
	print "skip - XML extension not loaded";
}
?>
--FILE--
<?php
/* Prototype  : proto int xml_parse_into_struct(resource parser, string data, array &struct, array &index)
 * Description: Parsing a XML document
 * Source code: ext/xml/xml.c
 * Alias to functions:
 */

echo "*** Testing xml_parse_into_struct() : variation ***\n";

$simple = "<main><para><note>simple note</note></para><para><note>simple note</note></para></main>";
$p = xml_parser_create();
xml_parse_into_struct($p, $simple, $vals, $index);
xml_parser_free($p);
echo "Index array\n";
print_r($index);
echo "\nVals array\n";
print_r($vals);


echo "Done";
?>
--EXPECT--
*** Testing xml_parse_into_struct() : variation ***
Index array
Array
(
    [MAIN] => Array
        (
            [0] => 0
            [1] => 7
        )

    [PARA] => Array
        (
            [0] => 1
            [1] => 3
            [2] => 4
            [3] => 6
        )

    [NOTE] => Array
        (
            [0] => 2
            [1] => 5
        )

)

Vals array
Array
(
    [0] => Array
        (
            [tag] => MAIN
            [type] => open
            [level] => 1
        )

    [1] => Array
        (
            [tag] => PARA
            [type] => open
            [level] => 2
        )

    [2] => Array
        (
            [tag] => NOTE
            [type] => complete
            [level] => 3
            [value] => simple note
        )

    [3] => Array
        (
            [tag] => PARA
            [type] => close
            [level] => 2
        )

    [4] => Array
        (
            [tag] => PARA
            [type] => open
            [level] => 2
        )

    [5] => Array
        (
            [tag] => NOTE
            [type] => complete
            [level] => 3
            [value] => simple note
        )

    [6] => Array
        (
            [tag] => PARA
            [type] => close
            [level] => 2
        )

    [7] => Array
        (
            [tag] => MAIN
            [type] => close
            [level] => 1
        )

)
Done