萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> php的XML文件解釋類應用實例

php的XML文件解釋類應用實例

 XMLParser.class.php類文件如下:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 <?php  /** XML 文件分析類  *  Date:  2013-02-01  *  Author: fdipzone  *  Ver:  1.0  *  *  func:  *  loadXmlFile($xmlfile)   讀入xml文件輸出Array  *  loadXmlString($xmlstring) 讀入xmlstring 輸出Array  */      class XMLParser{        /** 讀取xml文件    * @param String $xmlfile    * @return Array    */    public function loadXmlFile($xmlfile){      // get xmlfile content      $xmlstring = file_exists($xmlfile)? file_get_contents($xmlfile) : '';      // parser xml      list($flag, $data) = $this->parser($xmlstring);      return $this->response($flag, $data);    }        /** 讀取xmlstring    * @param String $xmlstring    * @return Array    */    public function loadXmlString($xmlstring){      // parser xml      list($flag, $data) = $this->parser($xmlstring);      return $this->response($flag, $data);    }        /** 解釋xml內容    * @param  String $xmlstring    * @return Array    */    private function parser($xmlstring){      $flag = false;      $data = array();      // check xml format      if($this->checkXmlFormat($xmlstring)){        $flag = true;        // xml to object        $data = simpleXML_load_string($xmlstring, 'SimpleXMLElement', LIBXML_NOCDATA);        // object to array        $this->objectToArray($data);      }      return array($flag, $data);    }        /** 檢查xml格式是否正確    * @param String $xmlstring    * @return boolean    */    private function checkXmlFormat($xmlstring){      if($xmlstring==''){        return false;      }      $xml_parser_obj = xml_parser_create();          if(xml_parse_into_struct($xml_parser_obj, $xmlstring, $vals, $indexs)===1){ // 1:success 0:fail        return true;      }else{        return false;      }    }        /** object 轉 Array    * @param object $object    * @return Array    */    private function objectToArray(&$object){              $object = (array)$object;              foreach($object as $key => $value){        if($value==''){          $object[$key] = "";        }else{          if(is_object($value) || is_array($value)){            $this->objectToArray($value);            $object[$key] = $value;          }        }      }    }        /** 輸出返回    * @param boolean $flag true:false    * @param Array  $data 轉換後的數據    * @return Array    */    private function response($flag=false, $data=array()){      return array($flag, $data);    }  }  ?>

Demo示例程序如下:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
copyright © 萬盛學電腦網 all rights reserved