xmlメソッドパッケージ

4153 ワード

1.xmlパッケージ方法
               xml
/** *  XML         * @param integer $code     * @param string $message      * @param array $data    * return string */

      public static function xmlEncode($code,$message="",$data=array()){
          if(!is_numeric($code)){
              return '';
          }
          $result=array(
              'code'=>$code,
              'message'=>$message,
              'data'=>$data,
          );
          header("Content-Type:text/xml");
          $xml="<?xml version='1.0' encoding='UTF-8'?>";
          $xml.="<root>";
          $xml.=self::xmlToEncode($result);
          $xml.="</root>";
          echo $xml;
          exit();

     }

ここでxmlToEncodeは属性を解析する
/** *   xml * @param unknown $result */
     public static function xmlToEncode($result){
         $xml=$attr="";
         foreach ($result as $key=>$value){
             // key      
             if(is_numeric($key)){
                 $attr = " id='" . $key . "'";
                 $key="item";
             }
             $xml.="<{$key}{$attr}>";
             $xml.=is_array($value)?self::xmlToEncode($value):$value;
             $xml.="</{$key}>";   
     }
     return $xml;

配列がarray(1,2,3)の場合、keyは0,1,2などと自動的に認識され、xmlでは数字をノードとして使用できないため、keyのidを属性として付与すると判断する.