您现在的位置: 万盛学电脑网 >> 程序编程 >> 网络编程 >> php编程 >> 正文

php的XML文件解释类应用实例

作者:佚名    责任编辑:admin    更新时间:2022-06-22

 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