我需要将数组转换为XML,一切正常,但是当数值出现时很难转换
function array2XML($obj, $array)
{
foreach ($array as $key => $value)
{
if(is_numeric($key))
$key = 'item' . $key;
if (is_array($value))
{
$node = $obj->addChild($key);
array2XML($node, $value);
}
else
{
$obj->addChild($key, htmlspecialchars($value));
}
}
}
如果数值存在,我需要使用上一个键
这是我的json数据
{"aaa":"111","bbb":222,"ccc":{"abc":[{"aaa":"123","bbb":253,"ccc":147},{"aaa":"123","bbb":253,"ccc":147}]},"bbc":{"bcc":[{"aaa":"1222","dfg":"123","vfbh":741},{"aaa":"1222","dfg":"123","vfbh":741}]}}
这是我创建的XML
<aaa>111<aaa>
<bbb>222</bbb>
<ccc>
<abc>
<item0>
<aaa></aaa>
<bbb></bbb>
<ccc></ccc>
</item0>
<item1>
<aaa></aaa>
<bbb></bbb>
<ccc></ccc>
</item1>
但是我需要在这种情况下将item0作为ex的prevoius键
这是我所期待的
<aaa>111<aaa>
<bbb>222</bbb>
<ccc>
<abc>
<aaa></aaa>
<bbb></bbb>
<ccc></ccc>
</abc>
<abc>
<aaa></aaa>
<bbb></bbb>
<ccc></ccc>
</abc>
答案 0 :(得分:0)
<?php
$test_array = array (
'bla' => 'blub',
'foo' => 'bar',
'another_array' => array (
'stack' => 'overflow',
),
);
$xml = new SimpleXMLElement('<root/>');
array_walk_recursive($test_array, array ($xml, 'addChild'));
print $xml->asXML();
results in
<?xml version="1.0"?>
<root>
<blub>bla</blub>
<bar>foo</bar>
<overflow>stack</overflow>
</root>
数字值不应该有任何问题。