Blupixel IT Blog – Articoli e Tutorial Informatica e Programmazione

Blog ufficiale di Blupixel IT Srl

Creare un XML da un array in PHP

Da un array come questo:

Array( [Articoli] =>
                    Array('Articolo' =>
                             Array( [Titolo] => 'Questo è il primo titolo',
                                    [Testo] => 'Questo è il primo testo'
                                  ),
                          ),
                    Array('Articolo' =>
                             Array( [Titolo] => 'Questo è il secondo titolo',
                                    [Testo] => 'Questo è il secondo testo'
                                  ),
                          )
      )

si vuole ottenere un XML così:

<root>
    <Articoli>
        <Articolo>
             <Titolo>
                  Questo è il primo titolo
             </Titolo>
             <Testo>
                  Questo è il primo testo
             </Testo>
        </Articolo>
        <Articolo>
             <Titolo>
                  Questo è il secondo titolo
             </Titolo>
             <Testo>
                  Questo è il secondo testo
             </Testo>
        </Articolo>
    </Articoli>
</root>

 

In sostanza si vogliono trasformare tutte gli indici in un tag e il valore nel suo contenuto.
Allora ecco una funzione semplice che richiede in input:
- $root: Tag della radice, può essere qualunque cosa. Nel nostro esempio potrebbe essere “Giornale”
- $params: è l’array che si vuole trasformare

function arrayToXML($root, $params) {
    $xml = '<' . $root . '>' . "\n";
    foreach ($params as $key => $value) {
        if (!is_numeric($key)) {
            if (is_array($value)) {
                $xml .= arrayToXML($key, $value);
            } else {
                $xml .= "\t" . '<' . $key . '>' . $value . '';
            }
        }
    }
    $xml .= ''."\n";
    return $xml;
}

La funzione è molto semplice. Sostanzialmente crea il tag con l’indice dell’array e mette all’interno il valore.
Se il valore è un array richiama di nuovo sè stessa dando come radice l’indice e valore l’array.

A presto

Category: PHP

Your email address will not be published. Required fields are marked *

*

lKoXut

Please type the text above: