我在PHP页面接收一个JSON字符串:PHP数组到XML功能
$JSON = $_POST['submit'];
$Array = json_decode($JSON);
$xml = arrayToXML($Array,"","root");
echo $xml;
其中arrayToXML是我的puropose发的功能。
功能工作正常,但有几个问题我想修正:
1.Duplicate标签:
比方说,我们有一个JSON字符串,如
{element:[{sub1:xxxx,sub2:xxx},{sub1:xxxx,sub2:xxx},{sub1:xxxx,sub2:xxx}]}
相应的XML会是什么样
<element>
<sub1>xxxx</sub1>
<sub2>xxx</sub2>
</element>
<element>
<sub1>xxxx</sub1>
<sub2>xxx</sub2>
</element>
<element>
<sub1>xxxx</sub1>
<sub2>xxx</sub2>
</element>
但我的函数递归重复了第一个标记和最后一个。我可以看到它为什么这样做,但我无法找出解决方法。所以我通过preg_replacing重复的标签解决了这个问题。有没有更好的方法来解决这个问题?这真的是我一直在想这件事的几天。
2.缩进:
我想产生一个奇特的人类可读的方式XML功能,所以我把换行相邻标签之间,但我怎么能确定正确的嵌套缩进?
我tryied这样的:
$xml = preg_replace("/(\t*)(<\/?.+>)(<\/?.+>)/","$2\n$1\t$3",$xml);
,但原来是compleately wrog。什么是正确的?
非常感谢。
包含该功能。 –
您可以使用[PEAR :: XML_Serializer](http://pear.php.net/package/XML_Serializer)将json转换为XML。首先,将json转换为一个对象,然后将该对象转换为XML – Farahmand
函数应该正确链接... – Onheiron