Home >Backend Development >PHP Tutorial >PHP XML file interpretation class application example_PHP tutorial

PHP XML file interpretation class application example_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 10:18:42901browse

PHP XML file interpretation class application example

The XMLParser.class.php class file is as follows:

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 file analysis class

* Date: 2013-02-01

* Author: fdipzone

* Ver: 1.0

*

* func:

* loadXmlFile($xmlfile) Read in xml file and output Array

* loadXmlString($xmlstring) reads xmlstring and outputs Array

*/

class XMLParser{

/**Read xml file

* @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);

}

/**Explain xml content

* @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); 

  } 

   

  /**Check whether the xml format is correct

* @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; 

        } 

      } 

    } 

  } 

   

  /**Output returns

* @param boolean $flag true:false

* @param Array $data converted data

* @return Array

*/ 

  private function response($flag=false, $data=array()){ 

    return array($flag, $data); 

  } 

?>

Demo sample program is as follows:

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 '

'; </p>
            <p>$xml_parser = new XMLParser(); </p>
            <p>echo "response xmlfilern"; </p>
            <p>list($flag, $xmldata) = $xml_parser->loadXmlFile($xmlfile); </p>
            <p>if($flag){ </p>
            <p>  print_r($xmldata); </p>
            <p>} </p>
            <p>echo "response xmlstringrn"; </p>
            <p>list($flag, $xmldata) = $xml_parser->loadXmlString($xmlstring); </p>
            <p>if($flag){ </p>
            <p>  print_r($xmldata); </p>
            <p>} </p>
            <p>echo '
'; 

?>

1 2 3

4

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 xmlfilern"; 
            list($flag, $xmldata) = $xml_parser->loadXmlFile($xmlfile); 
            if($flag){ 
             print_r($xmldata); 
            } 
            echo "response xmlstringrn"; 
            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 file interpretation class application example XMLParser.class.php class file is as follows: 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...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn