程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php的XML文件解釋類應用實例

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

編輯:關於PHP編程

     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 25 26 27 28 <?php  require "XMLParser.class.php";      $xmlfile = 'file.xml';  $xmlstring = '<?xml version="1.0" encoding="utf-8"?>  <xmlroot>  <status>1000</status>  <info></info>  <result><id>100</id>  <name>fdipzone</name>  <gender>1</gender>  <age>28</age>  </result>  </xmlroot>';  echo '<pre>';  $xml_parser = new XMLParser();  echo "response xmlfilern";  list($flag, $xmldata) = $xml_parser->loadXmlFile($xmlfile);  if($flag){    print_r($xmldata);  }  echo "response xmlstringrn";  list($flag, $xmldata) = $xml_parser->loadXmlString($xmlstring);  if($flag){    print_r($xmldata);  }  echo '</pre>';  ?>
    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved