src/thinkextend/transform/driver/Xml.php
public static function data2xml(\SimpleXMLElement $xml, $data, $item = 'item', $id = 'id')
    {
        foreach ($data as $key => $value) {
            //指定默认的数字key
            if (is_numeric($key)) {
                $id && $val = $key;
                $key        = $item;
            }

            //添加子元素
            if (is_array($value) || is_object($value)) {
                $child = $xml->addChild($key);
                self::data2xml($child, $value, $item, $id);
            } else {
                $child = $xml->addChild($key, $value);
            }

            //记录原来的key
            isset($val) && $child->addAttribute($id, $val);
        }
    }
public static function data2xml(\SimpleXMLElement $xml, $data, $item = 'item', $id = 'id')
    {
        foreach ($data as $key => $value) {
            //指定默认的数字key
            if (is_numeric($key)) {
                $id && $val = $key;
                $key        = $item;
            }

            //添加子元素
            if (is_array($value) || is_object($value)) {
                $child = $xml->addChild($key);
                self::data2xml($child, $value, $item, $id);
            } else {
                $child = $xml->addChild($key, $value);
            }

            //记录原来的key
            isset($val) && $child->addAttribute($id, $val);
        }
    }
public static function data2xml ( \ SimpleXMLElement $ xml , $ data , $ item = 'item' , $ id = 'id' ) { foreach ( $ data as $ key => $ value ) { //指定默认的数字key if ( is_numeric ( $ key ) ) { $ id && $ val = $ key ; $ key = $ item ; } //添加子元素 if ( is_array ( $ value ) || is_object ( $ value ) ) { $ child = $ xml -> addChild ( $ key ) ; self :: data2xml ( $ child , $ value , $ item , $ id ) ; } else { $ child = $ xml -> addChild ( $ key , $ value ) ; } //记录原来的key isset ( $ val ) && $ child -> addAttribute ( $ id , $ val ) ; } }
数据XML编码
@static
@access public
@param  mixed  $data 数据
@param  string $item 数字索引时的节点名称
@param  string $id   数字索引key转换为的属性名
@return string
数据XML编码