php的XML文件解释类应用实例_php教程-查字典教程网
php的XML文件解释类应用实例
php的XML文件解释类应用实例
发布时间:2016-12-29 来源:查字典编辑
摘要:本文实例讲述了php的XML文件解释类及其用法,是非常实用的技巧。分享给大家供大家参考。具体如下:XMLParser.class.php类文...

本文实例讲述了php的XML文件解释类及其用法,是非常实用的技巧。分享给大家供大家参考。具体如下:

XMLParser.class.php类文件如下:

<?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示例程序如下:

<"XMLParser.class.php"; $xmlfile = 'file.xml'; $xmlstring = '<"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>'; ?>

关于PHP的XML预定义常量可参考官方文档:

http://www.php.net/manual/en/libxml.constants.php

希望本文所述对大家PHP程序设计的学习有所帮助。

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新php教程学习
    热门php教程学习
    编程开发子分类