function ary2xml($cary, $d = 0, $forcetag = '')
 {
     $res = array();
     foreach ($cary as $tag => $r) {
         if (isset($r[0])) {
             $res[] = FrmProAppHelper::ary2xml($r, $d, $tag);
         } else {
             if ($forcetag) {
                 $tag = $forcetag;
             }
             $sp = str_repeat("\t", $d);
             $res[] = "{$sp}<{$tag}";
             if (isset($r['_a'])) {
                 foreach ($r['_a'] as $at => $av) {
                     $res[] = " {$at}=\"{$av}\"";
                 }
             }
             $res[] = ">" . (isset($r['_c']) ? "\n" : '');
             if (isset($r['_c'])) {
                 $res[] = ary2xml($r['_c'], $d + 1);
             } elseif (isset($r['_v'])) {
                 $res[] = $r['_v'];
             }
             $res[] = (isset($r['_c']) ? $sp : '') . "</{$tag}>\n";
         }
     }
     return implode('', $res);
 }