php的XML檔案解釋類應用執行個體_PHP教程

來源:互聯網
上載者:User

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 '

';

?>

http://www.bkjia.com/PHPjc/882704.htmlwww.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...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.