找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1979|回复: 0
打印 上一主题 下一主题

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

[复制链接]

2647

主题

2647

帖子

7881

积分

论坛元老

Rank: 8Rank: 8

积分
7881
跳转到指定楼层
楼主
发表于 2018-2-14 05:54:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

            本文实例讲述了php的XML文件解释类及其用法,是非常实用的技巧。分享给大家供大家参考。具体如下:
XMLParser.class.php类文件如下:
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示例程序如下:


1000

100
fdipzone
1
28

';
echo '';
$xml_parser = new XMLParser();
echo "response xmlfile\r\n";
list($flag, $xmldata) = $xml_parser->loadXmlFile($xmlfile);
if($flag){
  print_r($xmldata);
}
echo "response xmlstring\r\n";
list($flag, $xmldata) = $xml_parser->loadXmlString($xmlstring);
if($flag){
  print_r($xmldata);
}
echo '';
?>
关于PHP的XML预定义常量可参考官方文档:
http://www.php.net/manual/en/libxml.constants.php
希望本文所述对大家PHP程序设计的学习有所帮助。
            
            
您可能感兴趣的文章:
  • 使用PHP DOM-XML创建和解析XML文件
  • 生成ubuntu自动切换壁纸xml文件的php代码
  • php XPath对XML文件查找及修改实现代码
  • php中使用DOM类读取XML文件的实现代码
  • PHP中的生成XML文件的4种方法分享
  • PHP中3种生成XML文件方法的速度效率比较
  • php获取本地图片文件并生成xml文件输出具体思路
  • PHP中使用SimpleXML检查XML文件结构实例
  • php使用simplexml_load_file加载XML文件并显示XML的方法
  • php添加数据到xml文件的简单例子
  • PHP简单读取xml文件的方法示例
  • php对xml文件的增删改查操作实现方法分析
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端