コード例 #1
0
function ary2xml($cary, $d=0, $forcetag='') {
    $res=array();
    foreach ($cary as $tag=>$r) {
        if (isset($r[0])) {
            $res[]=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);
}
コード例 #2
0
ファイル: class.g.php プロジェクト: nhenderson/processmaker
 public function ary2xml($cary, $d = 0, $forcetag = '')
 {
     $res = array();
     foreach ($cary as $tag => $r) {
         if (isset($r[0])) {
             $res[] = self::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);
 }