欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

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

程序员文章站 2022-04-21 14:40:53
...

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

/** 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

require "XMLParser.class.php";

$xmlfile = 'file.xml';

$xmlstring = '

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 '

';

?>

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/882704.htmlTechArticlephp的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...
php的XML文件解释类应用实例_PHP教程

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频