zoukankan      html  css  js  c++  java
  • PHP生成xml数据-XML方式封装接口数据方法

    //实例:
     //test2.php
     class Response {  
    
    /**
         *PHP生成XML数据
         *1)组装字符串
         *2)使用系统类
         *    . DomDocument
         *    . XMLWriter
         *    . SimpleXML
         * 
         */
    
        //1)组装字符串生成XML数据
        public static function xml(){
            header("Content-Type:text/xml");
            $xml = "<?xml version='1.0' encoding='UTF-8'?>";
            $xml .= "<root>";
            $xml .= "<code>200</code>";
            $xml .= "<message>数据返回成功</message>";
            $xml .= "<data>";
            $xml .= "<id>1</id>";
            $xml .= "<name>小明</name>";
            $xml .= "</data>";
            $xml .="</root>";
    
            echo $xml;
        }
        //XML方式封装接口数据方法
        /**
         *
         * 封装方法
         * xmlEncode($code, $message = "", $data = array())
         * data数据分析
         * 1.array('index' => 'api');
         * 2.array(1,7,89);
         */
        
    
        /**
         * 按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;
        }
    
        public static function xmlToEncode($data){
            
            $xml = $attr = "";
            foreach($data as $key => $value){
                if (is_numeric($key)) {    
                    $attr = " id='{$key}'";
                    $key = "item";
                }
                $xml .= "<{$key}{$attr}>";
                $xml .= is_array($value) ? self::xmlToEncode($value) : $value;
                $xml .= "</{$key}>";
            }
            return $xml;
        }
        
    }
    <?php
    //test1.php
    require('./models/test2.php');//引入test2.php
    
    $data = array(
        'id' => 1,
        'name' => 'xiaojie',
        'test' => array(1,55,99,66),
    );
    //$test = new Response();//实例化test2.php文件中Response类
    //$test->json(200,'数据返回成功',$data);
    
    //$test->xml();
    
    Response::xmlEncode(200,'数据返回成功',$data);
    //浏览器执行test1.php文件返回结果
    
    <root>
    <code>200</code>
    <message>数据返回成功</message>
    <data>
    <id>1</id>
    <name>xiaojie</name>
    <test>
    <item id="0">1</item>
    <item id="1">55</item>
    <item id="2">99</item>
    <item id="3">66</item>
    </test>
    </data>
    </root>
  • 相关阅读:
    AcWing 3302. 表达式求值
    AcWing 828. 模拟栈
    六种风格时间显示
    web2.0常用配色.
    CSS浏览器兼容问题详解
    jQuery Cycle Plugin Beginner Demos
    jQuery插件Clipboard Copy(复制)。
    精通jQuery选择器使用
    jQuery插件右下角弹出信息
    CSS关于box(盒模式)的一系列问题
  • 原文地址:https://www.cnblogs.com/enjie/p/7976690.html
Copyright © 2011-2022 走看看