<?php
function arrayToXml($data, \SimpleXmlElement $element, $parent = null)
{
foreach ($data as $key => $value) {
if (is_array($value) || $value instanceof \Traversable) {
if (!is_numeric($key)) {
if (count($value) > 0 && isset($value[0])) {
arrayToXml($value, $element, $key);
} else {
$subnode = $element->addChild($key);
arrayToXml($value, $subnode, $key);
}
} else {
$subnode = $element->addChild($parent);
arrayToXml($value, $subnode, $parent);
}
} else {
if (!is_numeric($key)) {
if (substr($key, 0, 1) === '@') {
$element->addAttribute(substr($key, 1), $value);
} elseif ($key === 'value' and count($data) === 1) {
$element->{} = $value;
} elseif (is_bool($value)) {
$element->addChild($key, intval($value));
} else {
$element->addChild($key, htmlspecialchars($value, ENT_QUOTES));
}
} else {
$element->addChild($parent, htmlspecialchars($value, ENT_QUOTES));
}
}
}
}
$data = array('x' => array('value' => 'test'));
$doc = new \SimpleXMLElement('<resource href="/"></resource>');
arrayToXml($data, $doc);
echo $doc->asXml();
//$xml = new \SimpleXMLElement('<resource href="/"><x><0>test</0></x></resource>');
//echo $xml->x;
- Output for 5.3.0 - 5.3.28, 5.4.0 - 5.4.31
- Parse error: syntax error, unexpected '}' in /in/hCkij on line 22
Process exited with code 255.
preferences:
188.86 ms | 1387 KiB | 68 Q