0
我想使用XMLDOM将下面的数组(“name:$ array”)保存在xml文件中。我尝试了只有一个城市,它运作良好。但是,将代码集成到多个阵列时。它失败。将复杂数组转换为XML
的
阵列 ( [0] =>数组 ( [城市] =>数组 ( [0] =>瑞德特 [1] => Curepipe的 )
[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