Pretvaranje PHP polje za XML i Simple Object XML

Klasa ArrayToXML

{

/ **

* Glavna funkcija za prebacivanje na XML dokumenta.

* Pass u više dimenzionalnom polju i to recrusively petlje kroz i gradi XML dokument.

*

* @ Param data array dolara

* @ Param string $ rootNodeName - ono što želite korijen čvor biti - defaultsto podataka.

* @ Param SimpleXMLElement $ XML - treba koristiti samo rekurzivno
* @ Povratak string XML

* /

public static toXml funkcija ($ podatci, $ rootNodeName = 'Podaci', $ xml = null)

{

/ / Isključivanje način kompatibilnosti kao jednostavan xml baca nesiguran, ako to ne čine.

if (ini_get ('zend.ze1_compatibility_mode') == 1)

{

ini_set ('zend.ze1_compatibility_mode', 0);

}

if ($ xml == null)

{

$ Xml = simplexml_load_string ("<xml version = '1 .0 To encoding =" utf-8 '?> <$ RootNodeName /> ");

}

/ / Petlja kroz podatke donosi rezervirati

foreach ($ $ podaci kao ključ => $ vrijednost)

{

/ / Nema brojčane tipke u našem XML molim!

if (is_numeric ($ ključ))

{

/ / String napraviti ključ ...

$ Ključ = "unknownNode_". (String) $ ključ;

}

/ / Zamijeniti ništa nije alfa numerička

$ Ključ = preg_replace ('/ [^ az] / i', ", $ ključ);

/ / Ako postoji još jedan niz pronađena recrusively nazvati ovu funkciju

if (is_array ($ vrijednost))

{

Čvor $ = $ xml-> addChild ($ ključ);

/ / Recrusive poziv.

ArrayToXML :: toXml ($ vrijednost, rootNodeName $, $ čvor);

}

drugo

{

/ / Dodaj jednu čvor.

Dolara vrijednost = htmlentities ($ vrijednost);

$ Xml-> addChild ($ ključ, $ vrijednost);

}

}

/ / Proći još niz. ili jednostavno xml objekt ako želite!

povratak $ XML-> asXML ();

}

}

Možete dopust reakcija , ili kugla za pokazivanje from tvoj posjedovati položaj.

Dopust jedan Odgovor

Morate biti prijavljeni kako bi upisali komentar.