Subversion-Projekte lars-tiefland.php_share

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
1 lars 1
--TEST--
2
XML Serializer - show proper usages of SCALAR_AS_ATTRIBUTES option
3
--FILE--
4
<?php
5
require_once 'XML/Serializer.php';
6
 
7
$ser = &new XML_Serializer();
8
 
9
 
10
/**
11
 * all subtags under tagA will become attributes on tagA...
12
 * all subtags under tagB will become attributes on tagB...
13
 */
14
echo 'TEST:  SCALAR_AS_ATTRIBUTES set TRUE' . PHP_EOL;
15
$ser->setOption(XML_SERIALIZER_OPTION_SCALAR_AS_ATTRIBUTES, true);
16
$result = $ser->serialize(
17
    array(
18
        'tagA' => array(
19
            'tag2' => 2,
20
            'tag3' => 'hi'
21
        ),
22
        'tagB' => array(
23
            'tag4' => 4,
24
            'tag5' => 'bye'
25
        )
26
    )
27
);
28
echo $ser->getSerializedData() . PHP_EOL . PHP_EOL;
29
 
30
 
31
/**
32
 * all subtags under tagA will become attributes on tagA,
33
 * but subtags under tagB will remain as subtags.
34
 */
35
echo 'TEST:  SCALAR_AS_ATTRIBUTES set to array(\'tagA\' => true)' . PHP_EOL;
36
$ser->setOption(XML_SERIALIZER_OPTION_SCALAR_AS_ATTRIBUTES,
37
    array(
38
        'tagA' => true
39
    )
40
);
41
$result = $ser->serialize(
42
    array(
43
        'tagA' => array(
44
            'tag2' => 2,
45
            'tag3' => 'hi'
46
        ),
47
        'tagB' => array(
48
            'tag4' => 4,
49
            'tag5' => 'bye'
50
        )
51
    )
52
);
53
echo $ser->getSerializedData() . PHP_EOL . PHP_EOL;
54
 
55
 
56
/**
57
 * only subtag tag3 will become an attribute on tagA...
58
 * tag2 will remain a subtag under tagA...
59
 * nothing affects tagB... tag4 and tag5 remain subtags under it.
60
 */
61
echo 'TEST:  SCALAR_AS_ATTRIBUTES set to array(\'tagA\' => array(\'tag3\'))' . PHP_EOL;
62
$ser->setOption(XML_SERIALIZER_OPTION_SCALAR_AS_ATTRIBUTES,
63
    array(
64
        'tagA' => array('tag3')
65
    )
66
);
67
$result = $ser->serialize(
68
    array(
69
        'tagA' => array(
70
            'tag2' => 2,
71
            'tag3' => 'hi'
72
        ),
73
        'tagB' => array(
74
            'tag4' => 4,
75
            'tag5' => 'bye'
76
        )
77
    )
78
);
79
echo $ser->getSerializedData() . PHP_EOL . PHP_EOL;
80
 
81
?>
82
--EXPECT--
83
TEST:  SCALAR_AS_ATTRIBUTES set TRUE
84
<array>
85
<tagA tag2="2" tag3="hi" />
86
<tagB tag4="4" tag5="bye" />
87
</array>
88
 
89
TEST:  SCALAR_AS_ATTRIBUTES set to array('tagA' => true)
90
<array>
91
<tagA tag2="2" tag3="hi" />
92
<tagB>
93
<tag4>4</tag4>
94
<tag5>bye</tag5>
95
</tagB>
96
</array>
97
 
98
TEST:  SCALAR_AS_ATTRIBUTES set to array('tagA' => array('tag3'))
99
<array>
100
<tagA tag3="hi">
101
<tag2>2</tag2>
102
</tagA>
103
<tagB>
104
<tag4>4</tag4>
105
<tag5>bye</tag5>
106
</tagB>
107
</array>