gpt4 book ai didi

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

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章php的XML文件解释类应用实例由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

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

XMLParser.class.php类文件如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
<?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示例程序如下

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
require "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程序设计的学习有所帮助.

最后此篇关于php的XML文件解释类应用实例的文章就讲到这里了,如果你想了解更多关于php的XML文件解释类应用实例的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com