0

以下の配列 ( "name: $array" ) を XMLDOM を使用して xml ファイルに保存したいと考えています。1 つの都市だけで試してみましたが、うまくいきました。ただし、コードを複数の配列に統合する場合。それは失敗します。

配列 ( [0] => 配列 ( [city] => 配列 ( [0] => Reduit [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に変換することは可能ですか?

4

1 に答える 1

0

配列をXMLに変換する関数を含む同様の回答がここにあり、あなたがやろうとしていることに簡単に適応できると思います。

于 2012-05-27T15:39:13.560 に答える