-
Notifications
You must be signed in to change notification settings - Fork 20
/
Copy pathserializeSelectiveAttributes.php
46 lines (39 loc) · 1.6 KB
/
serializeSelectiveAttributes.php
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
<?PHP
/**
* This shows that XML_Serializer is able to work with
* empty arrays
*
* @author Stephan Schmidt <[email protected]>
*/
error_reporting(E_ALL);
require_once 'XML/Serializer.php';
$data = array(
array('name' => 'Superman', 'age' => 34, 'realname' => 'Clark Kent'),
array('name' => 'Batman', 'age' => 32, 'realname' => 'Bruce Wayne'),
'villain' => array('name' => 'Professor Zoom', 'age' => 'unknown', 'realname' => 'Hunter Zolomon')
);
$serializer = new XML_Serializer();
$serializer->setOption(XML_SERIALIZER_OPTION_INDENT, ' ');
$serializer->setOption(XML_SERIALIZER_OPTION_DEFAULT_TAG, 'hero');
$serializer->serialize($data);
echo '<pre>';
echo "Default behaviour:\n";
echo htmlspecialchars($serializer->getSerializedData());
echo '</pre>';
$serializer->setOption(XML_SERIALIZER_OPTION_SCALAR_AS_ATTRIBUTES, true);
$serializer->serialize($data);
echo '<pre>';
echo "XML_SERIALIZER_OPTION_SCALAR_AS_ATTRIBUTES = true:\n";
echo htmlspecialchars($serializer->getSerializedData());
echo '</pre>';
$serializer->setOption(XML_SERIALIZER_OPTION_SCALAR_AS_ATTRIBUTES, array(
'hero' => array('name', 'age'),
'villain' => array('realname')
)
);
$serializer->serialize($data);
echo '<pre>';
echo "XML_SERIALIZER_OPTION_SCALAR_AS_ATTRIBUTES is an array:\n";
echo htmlspecialchars($serializer->getSerializedData());
echo '</pre>';
?>