SORU
26 EYLÜL 2008, Cuma


PHP XML Belge Nesnesi

Belirli bir PHP nesne alıp XML olarak seri hale getirmek için en iyi yolu nedir? Simple_xml bakıyorum ve nesneleri XML ayrıştırma için kullandım, ama diğer türlü nasıl benim için açık değil.

CEVAP
3 ŞUBAT 2010, ÇARŞAMBA


ARMUT XML_Serializer ama eğer özellikleri iç içe diziler/nesneleri destekleyen basit bir şey istiyorsanız, bunu kullanabilirsiniz kullanarak kabul ediyorum.

class XMLSerializer {

    // functions adopted from http://www.sean-barton.co.uk/2009/03/turning-an-array-or-object-into-xml-using-php/

    public static function generateValidXmlFromObj(stdClass $obj, $node_block='nodes', $node_name='node') {
        $arr = get_object_vars($obj);
        return self::generateValidXmlFromArray($arr, $node_block, $node_name);
    }

    public static function generateValidXmlFromArray($array, $node_block='nodes', $node_name='node') {
        $xml = '<?xml version="1.0" encoding="UTF-8" ?>';

        $xml .= '<' . $node_block . '>';
        $xml .= self::generateXmlFromArray($array, $node_name);
        $xml .= '</' . $node_block . '>';

        return $xml;
    }

    private static function generateXmlFromArray($array, $node_name) {
        $xml = '';

        if (is_array($array) || is_object($array)) {
            foreach ($array as $key=>$value) {
                if (is_numeric($key)) {
                    $key = $node_name;
                }

                $xml .= '<' . $key . '>' . self::generateXmlFromArray($value, $node_name) . '</' . $key . '>';
            }
        } else {
            $xml = htmlspecialchars($array, ENT_QUOTES);
        }

        return $xml;
    }

}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • cekehechu

    cekehechu

    20 HAZİRAN 2006
  • LivestrongWoman

    LivestrongWo

    1 Aralık 2011
  • SlimaksClass

    SlimaksClass

    15 Kasım 2010