php XML文件解释类
来源:互联网 发布:流水账软件 编辑:程序博客网 时间:2024/05/22 06:42
XMLParser.class.php
PHP XML预定义常量: http://www.php.net/manual/en/libxml.constants.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:
<?phprequire "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 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 '</pre>';?>
PHP XML预定义常量: http://www.php.net/manual/en/libxml.constants.php
- php XML文件解释类
- PHP 使用 XML Expat 解释xml文件
- PHP 操作解释XML
- AndroidMainfest.xml文件解释
- AndroidMainfest.xml文件解释
- AndroidManifest.xml 文件解释
- pom.xml文件解释
- PHP解析XML文件类
- tomcat.xml文件详细解释
- XML文件头的解释
- AndroidManifest.xml文件代码解释
- 2.AndroidMainfest.xml文件解释
- 利用反射机制,封装 SAX解释类,从而解释网络xml文件
- php 动态创建XML文件类
- PHP 生成 XML文件
- PHP读取XML文件
- PHP 处置 XML 文件
- PHP解析XML文件
- Java中的Overload Overwrite Override
- mysql 存储过程编写(2)
- 构造函数
- 反汇编的call和retn
- Google Code Jam 2012 Qualification Round. Problem D. Hall of Mirrors
- php XML文件解释类
- 在linux系统(suse和redhat)下,打开coredump的设置方法
- 开源网店程序magento目录结构完整版
- android 如何使用命令和代码设置heapsize
- static关键字
- 12306网站、抢票插件以及偶写的自动订票小程序
- 一个女中医写的女人保养秘笈
- 在DLL中使用DevExpress的问题
- inno setup介绍