Ejemplo n.º 1
0
/**
 * 数据XML编码
 * @param mixed  $data 数据
 * @param string $item 数字索引时的节点名称
 * @param string $id   数字索引key转换为的属性名
 * @return string
 */
function dataToXml($data, $item = 'item', $id = 'id')
{
    $xml = $attr = '';
    foreach ($data as $key => $val) {
        if (is_numeric($key)) {
            $id && ($attr = " {$id}=\"{$key}\"");
            $key = $item;
        }
        $xml .= "<{$key}{$attr}>";
        $xml .= is_array($val) || is_object($val) ? dataToXml($val, $item, $id) : $val;
        $xml .= "</{$key}>";
    }
    return $xml;
}
function dataToXml($data)
{
    if (is_object($data)) {
        $data = get_object_vars($data);
    }
    $xml = '';
    foreach ($data as $key => $val) {
        is_numeric($key) && ($key = "item id=\"{$key}\"");
        $xml .= "<{$key}>";
        $xml .= is_array($val) || is_object($val) ? dataToXml($val) : $val;
        list($key, ) = explode(' ', $key);
        $xml .= "</{$key}>";
    }
    return $xml;
}