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

前端之家收集整理的这篇文章主要介绍了php的XML文件解释类应用实例前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

XMLParser.class.PHP文件如下:

PHP;"> 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);
    }

/** 解释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示例程序如下:

PHP;"> PHP require "XMLParser.class.PHP";

$xmlfile = 'file.xml';
$xmlstring = '<?xml version="1.0" encoding="utf-8"?>

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程序设计的学习有所帮助。

原文链接:https://www.f2er.com/php/23785.html

猜你在找的PHP相关文章