Я хочу сохранить приведенный ниже массив («name: $ array») в XML-файле с использованием XMLDOM. Я пробовал только с одним городом, и он работает хорошо. Но при интеграции кода в несколько массивов. он не работает.Преобразование/сохранение сложного массива в XML
Массив ( [0] => Массив ( [город] => Массив ( [0] => Редуит [1] => Кюрпип )
[distance] =>40
)
[1] => Array
(
[city] => Array
(
[0] => Array
(
[0] => Reduit
[1] => Ebe
)
[1] => Bees Village
[2] => Phoen Trunk Rd
[3] => Riv,Phoenix
[4] => St l Rd
[5] => Geoes Guibert St
[6] => Curepipe
)
[distance] => 20 )
[2] => Array
(
[city] => Array
(
[0] => Array
(
[0] => Reduit
[1] => Riv,Phoenix
)
[1] => St l Rd
[2] => Geoes Guibert St
[3] => Curepipe
)
[distance] =>155
)
[3] => Array
(
[city] => Array
(
[0] => Array
(
[0] => Reduit
[1] => Ebene
)
[1] => Belles Village
[2] => Phoenix Trunk Rd
[3] => Riverside,Phoenix
[4] => St Paul Rd
[5] => Georges Guibert St
[6] => Curepipe
)
[distance] => 79
)
)
Вот мой рабочий
function saveToXml($flatArray,$flat){
#create a domdocument
$domDocument = new DOMDocument('1.0','utf-8');
$domDocument->formatOutput = true;
$domDocument->load('result.xml');
$xpath = new DOMXPath($domDocument);
$results = $xpath->query('/mauritius/pair');
$newItem = $results->item(0);
#get length of city in file
$lengthCity = $domDocument->getElementsByTagName('city')->length;
for($i=0;$i<$lengthCity;$i++){
#check if city exist
if ($lengthCity >0){
#delete all city
echo $lengthCity;
foreach ($results as $result){
$city=$result->getElementsByTagName('city')->item(0);
$result->removeChild($city);
}
}
}
#loop through all values
for ($row=0; $row<$flatArray;$row++){
#addElement
$new_node = $domDocument->createElement('city');
$text_node = $domDocument->createTextNode($flat[$row]);
$new_node->appendChild($text_node);
$newItem->appendChild($new_node);
}
echo $domDocument->save('result.xml');
}
Можно ли преобразовать массив в xml?
Да, но я единственная проблема заключается в том, как сохранить вложенные массивы без выравнивания результата и слить все. – user1419210
Угадаю, что я не понимаю, что вопрос заполнен, тогда я использовал второй пример этого ответа, и он дал всю глубину массива в объект SimpleXML, из которого я сохранил его в файл. – GDP
не работает, я попробовал. – user1419210