首页 > 编程 > PHP > 正文

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

2020-03-22 18:34:28
字体:
来源:转载
供稿:网友
本文实例讲述了php的XML文件解释类及其用法,是非常实用的技巧。分享给大家供大家参考。具体如下:XMLParser.html' target='_blank'>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);
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程序设计的学习有所帮助。PHP教程

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表