Я получаю строку JSON в PHP страницу: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. Что было бы правильным?
Большое спасибо.
Включите функцию. –
Вы можете конвертировать json в XML с помощью [PEAR :: XML_Serializer] (http://pear.php.net/package/XML_Serializer). Во-первых, конвертировать json в объект, а затем преобразовать объект в XML – Farahmand
, функция должна быть правильно связана ... – Onheiron