3v4l.org

run code in 300+ PHP versions simultaneously
<?php /* XML Parser Class by Eric Rosebrock modified by Richard Bishop 30/05/2007 http://www.phpfreaks.com Class originated from: kris@h3x.com AT: http://www.devdump.com/phpxml.php Usage: <?php include 'clsParseXML.php'; $xmlparse = &new ParseXML; $xml = $xmlparse->GetXMLTree('/path/to/xmlfile.xml'); echo "<pre>"; print_r($xml); echo "</pre>"; ?> The path to the XML file may be a local file or a URL. Returns the elements of the XML file into an array with it's subelements as keys and subarrays. */ class clsParseXML{ function GetChildren($vals, &$i) { $children = array(); // Contains node data if (isset($vals[$i]['value'])){ $children['VALUE'] = $vals[$i]['value']; } while (++$i < count($vals)){ switch ($vals[$i]['type']){ case 'cdata': if (isset($children['VALUE'])){ $children['VALUE'] .= $vals[$i]['value']; } else { $children['VALUE'] = $vals[$i]['value']; } break; case 'complete': if (isset($vals[$i]['attributes'])) { $children[$vals[$i]['tag']][]['ATTRIBUTES'] = $vals[$i]['attributes']; $index = count($children[$vals[$i]['tag']])-1; if (isset($vals[$i]['value'])){ $children[$vals[$i]['tag']][$index]['VALUE'] = $vals[$i]['value']; } else { $children[$vals[$i]['tag']][$index]['VALUE'] = ''; } } else { if (isset($vals[$i]['value'])){ $children[$vals[$i]['tag']][]['VALUE'] = $vals[$i]['value']; } else { $children[$vals[$i]['tag']][]['VALUE'] = ''; } } break; case 'open': if (isset($vals[$i]['attributes'])) { $children[$vals[$i]['tag']][]['ATTRIBUTES'] = $vals[$i]['attributes']; $index = count($children[$vals[$i]['tag']])-1; $children[$vals[$i]['tag']][$index] = array_merge($children[$vals[$i]['tag']][$index],$this->GetChildren($vals, $i)); } else { $children[$vals[$i]['tag']][] = $this->GetChildren($vals, $i); } break; case 'close': return $children; } } } function GetXMLDataTree($data){ $parser = xml_parser_create('ISO-8859-1'); xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1); xml_parse_into_struct($parser, $data, $vals, $index); xml_parser_free($parser); $tree = array(); $i = 0; if (isset($vals[$i]['attributes'])) { $tree[$vals[$i]['tag']][]['ATTRIBUTES'] = $vals[$i]['attributes']; $index = count($tree[$vals[$i]['tag']])-1; $tree[$vals[$i]['tag']][$index] = array_merge($tree[$vals[$i]['tag']][$index], $this->GetChildren($vals, $i)); } else { $tree[$vals[$i]['tag']][] = $this->GetChildren($vals, $i); } return $tree; } function GetXMLTree($xmlloc){ if (file_exists($xmlloc)){ $data = implode('', file($xmlloc)); } else { $fp = fopen($xmlloc,'r'); while(!feof($fp)){ $data = $data . fread($fp, 1024); } fclose($fp); } $parser = xml_parser_create('ISO-8859-1'); xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1); xml_parse_into_struct($parser, $data, $vals, $index); xml_parser_free($parser); $tree = array(); $i = 0; if (isset($vals[$i]['attributes'])) { $tree[$vals[$i]['tag']][]['ATTRIBUTES'] = $vals[$i]['attributes']; $index = count($tree[$vals[$i]['tag']])-1; $tree[$vals[$i]['tag']][$index] = array_merge($tree[$vals[$i]['tag']][$index], $this->GetChildren($vals, $i)); } else { $tree[$vals[$i]['tag']][] = $this->GetChildren($vals, $i); } return $tree; } } ?>
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/rD36X
function name:  (null)
number of ops:  1
compiled vars:  none
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  133     0  E > > RETURN                                                   1

Class clsParseXML:
Function getchildren:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 6, Position 2 = 10
Branch analysis from position: 6
1 jumps found. (Code = 42) Position 1 = 138
Branch analysis from position: 138
2 jumps found. (Code = 44) Position 1 = 142, Position 2 = 11
Branch analysis from position: 142
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 11
6 jumps found. (Code = 188) Position 1 = 23, Position 2 = 35, Position 3 = 90, Position 4 = 135, Position 5 = 137, Position 6 = 14
Branch analysis from position: 23
2 jumps found. (Code = 43) Position 1 = 25, Position 2 = 30
Branch analysis from position: 25
1 jumps found. (Code = 42) Position 1 = 34
Branch analysis from position: 34
1 jumps found. (Code = 42) Position 1 = 137
Branch analysis from position: 137
2 jumps found. (Code = 44) Position 1 = 142, Position 2 = 11
Branch analysis from position: 142
Branch analysis from position: 11
Branch analysis from position: 30
1 jumps found. (Code = 42) Position 1 = 137
Branch analysis from position: 137
Branch analysis from position: 35
2 jumps found. (Code = 43) Position 1 = 38, Position 2 = 71
Branch analysis from position: 38
2 jumps found. (Code = 43) Position 1 = 55, Position 2 = 64
Branch analysis from position: 55
1 jumps found. (Code = 42) Position 1 = 70
Branch analysis from position: 70
1 jumps found. (Code = 42) Position 1 = 89
Branch analysis from position: 89
1 jumps found. (Code = 42) Position 1 = 137
Branch analysis from position: 137
Branch analysis from position: 64
1 jumps found. (Code = 42) Position 1 = 89
Branch analysis from position: 89
Branch analysis from position: 71
2 jumps found. (Code = 43) Position 1 = 74, Position 2 = 83
Branch analysis from position: 74
1 jumps found. (Code = 42) Position 1 = 89
Branch analysis from position: 89
Branch analysis from position: 83
1 jumps found. (Code = 42) Position 1 = 137
Branch analysis from position: 137
Branch analysis from position: 90
2 jumps found. (Code = 43) Position 1 = 93, Position 2 = 125
Branch analysis from position: 93
1 jumps found. (Code = 42) Position 1 = 134
Branch analysis from position: 134
1 jumps found. (Code = 42) Position 1 = 137
Branch analysis from position: 137
Branch analysis from position: 125
1 jumps found. (Code = 42) Position 1 = 137
Branch analysis from position: 137
Branch analysis from position: 135
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 137
Branch analysis from position: 14
2 jumps found. (Code = 44) Position 1 = 16, Position 2 = 23
Branch analysis from position: 16
2 jumps found. (Code = 44) Position 1 = 18, Position 2 = 35
Branch analysis from position: 18
2 jumps found. (Code = 44) Position 1 = 20, Position 2 = 90
Branch analysis from position: 20
2 jumps found. (Code = 44) Position 1 = 22, Position 2 = 135
Branch analysis from position: 22
1 jumps found. (Code = 42) Position 1 = 137
Branch analysis from position: 137
Branch analysis from position: 135
Branch analysis from position: 90
Branch analysis from position: 35
Branch analysis from position: 23
Branch analysis from position: 10
filename:       /in/rD36X
function name:  GetChildren
number of ops:  143
compiled vars:  !0 = $vals, !1 = $i, !2 = $children, !3 = $index
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   31     0  E >   RECV                                             !0      
          1        RECV                                             !1      
   32     2        ASSIGN                                                   !2, <array>
   33     3        FETCH_DIM_IS                                     ~5      !0, !1
          4        ISSET_ISEMPTY_DIM_OBJ                         0          ~5, 'value'
          5      > JMPZ                                                     ~6, ->10
   34     6    >   FETCH_DIM_R                                      ~8      !0, !1
          7        FETCH_DIM_R                                      ~9      ~8, 'value'
          8        ASSIGN_DIM                                               !2, 'VALUE'
          9        OP_DATA                                                  ~9
   37    10    > > JMP                                                      ->138
   38    11    >   FETCH_DIM_R                                      ~10     !0, !1
         12        FETCH_DIM_R                                      ~11     ~10, 'type'
         13      > SWITCH_STRING                                            ~11, [ 'cdata':->23, 'complete':->35, 'open':->90, 'close':->135, ], ->137
   40    14    >   CASE                                                     ~11, 'cdata'
         15      > JMPNZ                                                    ~12, ->23
   48    16    >   CASE                                                     ~11, 'complete'
         17      > JMPNZ                                                    ~12, ->35
   67    18    >   CASE                                                     ~11, 'open'
         19      > JMPNZ                                                    ~12, ->90
   77    20    >   CASE                                                     ~11, 'close'
         21      > JMPNZ                                                    ~12, ->135
         22    > > JMP                                                      ->137
   41    23    >   ISSET_ISEMPTY_DIM_OBJ                         0          !2, 'VALUE'
         24      > JMPZ                                                     ~13, ->30
   42    25    >   FETCH_DIM_R                                      ~15     !0, !1
         26        FETCH_DIM_R                                      ~16     ~15, 'value'
         27        ASSIGN_DIM_OP                .=               8          !2, 'VALUE'
         28        OP_DATA                                                  ~16
         29      > JMP                                                      ->34
   44    30    >   FETCH_DIM_R                                      ~18     !0, !1
         31        FETCH_DIM_R                                      ~19     ~18, 'value'
         32        ASSIGN_DIM                                               !2, 'VALUE'
         33        OP_DATA                                                  ~19
   46    34    > > JMP                                                      ->137
   49    35    >   FETCH_DIM_IS                                     ~20     !0, !1
         36        ISSET_ISEMPTY_DIM_OBJ                         0          ~20, 'attributes'
         37      > JMPZ                                                     ~21, ->71
   50    38    >   FETCH_DIM_R                                      ~22     !0, !1
         39        FETCH_DIM_R                                      ~23     ~22, 'tag'
         40        FETCH_DIM_R                                      ~27     !0, !1
         41        FETCH_DIM_R                                      ~28     ~27, 'attributes'
         42        FETCH_DIM_W                                      $24     !2, ~23
         43        FETCH_DIM_W                                      $25     $24
         44        ASSIGN_DIM                                               $25, 'ATTRIBUTES'
         45        OP_DATA                                                  ~28
   51    46        FETCH_DIM_R                                      ~29     !0, !1
         47        FETCH_DIM_R                                      ~30     ~29, 'tag'
         48        FETCH_DIM_R                                      ~31     !2, ~30
         49        COUNT                                            ~32     ~31
         50        SUB                                              ~33     ~32, 1
         51        ASSIGN                                                   !3, ~33
   53    52        FETCH_DIM_IS                                     ~35     !0, !1
         53        ISSET_ISEMPTY_DIM_OBJ                         0          ~35, 'value'
         54      > JMPZ                                                     ~36, ->64
   54    55    >   FETCH_DIM_R                                      ~37     !0, !1
         56        FETCH_DIM_R                                      ~38     ~37, 'tag'
         57        FETCH_DIM_R                                      ~42     !0, !1
         58        FETCH_DIM_R                                      ~43     ~42, 'value'
         59        FETCH_DIM_W                                      $39     !2, ~38
         60        FETCH_DIM_W                                      $40     $39, !3
         61        ASSIGN_DIM                                               $40, 'VALUE'
         62        OP_DATA                                                  ~43
         63      > JMP                                                      ->70
   56    64    >   FETCH_DIM_R                                      ~44     !0, !1
         65        FETCH_DIM_R                                      ~45     ~44, 'tag'
         66        FETCH_DIM_W                                      $46     !2, ~45
         67        FETCH_DIM_W                                      $47     $46, !3
         68        ASSIGN_DIM                                               $47, 'VALUE'
         69        OP_DATA                                                  ''
         70    > > JMP                                                      ->89
   59    71    >   FETCH_DIM_IS                                     ~49     !0, !1
         72        ISSET_ISEMPTY_DIM_OBJ                         0          ~49, 'value'
         73      > JMPZ                                                     ~50, ->83
   60    74    >   FETCH_DIM_R                                      ~51     !0, !1
         75        FETCH_DIM_R                                      ~52     ~51, 'tag'
         76        FETCH_DIM_R                                      ~56     !0, !1
         77        FETCH_DIM_R                                      ~57     ~56, 'value'
         78        FETCH_DIM_W                                      $53     !2, ~52
         79        FETCH_DIM_W                                      $54     $53
         80        ASSIGN_DIM                                               $54, 'VALUE'
         81        OP_DATA                                                  ~57
         82      > JMP                                                      ->89
   62    83    >   FETCH_DIM_R                                      ~58     !0, !1
         84        FETCH_DIM_R                                      ~59     ~58, 'tag'
         85        FETCH_DIM_W                                      $60     !2, ~59
         86        FETCH_DIM_W                                      $61     $60
         87        ASSIGN_DIM                                               $61, 'VALUE'
         88        OP_DATA                                                  ''
   65    89    > > JMP                                                      ->137
   68    90    >   FETCH_DIM_IS                                     ~63     !0, !1
         91        ISSET_ISEMPTY_DIM_OBJ                         0          ~63, 'attributes'
         92      > JMPZ                                                     ~64, ->125
   69    93    >   FETCH_DIM_R                                      ~65     !0, !1
         94        FETCH_DIM_R                                      ~66     ~65, 'tag'
         95        FETCH_DIM_R                                      ~70     !0, !1
         96        FETCH_DIM_R                                      ~71     ~70, 'attributes'
         97        FETCH_DIM_W                                      $67     !2, ~66
         98        FETCH_DIM_W                                      $68     $67
         99        ASSIGN_DIM                                               $68, 'ATTRIBUTES'
        100        OP_DATA                                                  ~71
   70   101        FETCH_DIM_R                                      ~72     !0, !1
        102        FETCH_DIM_R                                      ~73     ~72, 'tag'
        103        FETCH_DIM_R                                      ~74     !2, ~73
        104        COUNT                                            ~75     ~74
        105        SUB                                              ~76     ~75, 1
        106        ASSIGN                                                   !3, ~76
   71   107        FETCH_DIM_R                                      ~78     !0, !1
        108        FETCH_DIM_R                                      ~79     ~78, 'tag'
        109        INIT_FCALL                                               'array_merge'
        110        FETCH_DIM_R                                      ~82     !0, !1
        111        FETCH_DIM_R                                      ~83     ~82, 'tag'
        112        FETCH_DIM_R                                      ~84     !2, ~83
        113        FETCH_DIM_R                                      ~85     ~84, !3
        114        SEND_VAL                                                 ~85
        115        INIT_METHOD_CALL                                         'GetChildren'
        116        SEND_VAR_EX                                              !0
        117        SEND_VAR_EX                                              !1
        118        DO_FCALL                                      0  $86     
        119        SEND_VAR                                                 $86
        120        DO_ICALL                                         $87     
        121        FETCH_DIM_W                                      $80     !2, ~79
        122        ASSIGN_DIM                                               $80, !3
        123        OP_DATA                                                  $87
        124      > JMP                                                      ->134
   73   125    >   FETCH_DIM_R                                      ~88     !0, !1
        126        FETCH_DIM_R                                      ~89     ~88, 'tag'
        127        INIT_METHOD_CALL                                         'GetChildren'
        128        SEND_VAR_EX                                              !0
        129        SEND_VAR_EX                                              !1
        130        DO_FCALL                                      0  $92     
        131        FETCH_DIM_W                                      $90     !2, ~89
        132        ASSIGN_DIM                                               $90
        133        OP_DATA                                                  $92
   75   134    > > JMP                                                      ->137
   78   135    >   FREE                                                     ~11
        136      > RETURN                                                   !2
        137    >   FREE                                                     ~11
   37   138    >   PRE_INC                                          ~93     !1
        139        COUNT                                            ~94     !0
        140        IS_SMALLER                                               ~93, ~94
        141      > JMPNZ                                                    ~95, ->11
   81   142    > > RETURN                                                   null

End of function getchildren

Function getxmldatatree:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 24, Position 2 = 56
Branch analysis from position: 24
1 jumps found. (Code = 42) Position 1 = 65
Branch analysis from position: 65
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 56
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/rD36X
function name:  GetXMLDataTree
number of ops:  67
compiled vars:  !0 = $data, !1 = $parser, !2 = $vals, !3 = $index, !4 = $tree, !5 = $i
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   83     0  E >   RECV                                             !0      
   85     1        INIT_FCALL                                               'xml_parser_create'
          2        SEND_VAL                                                 'ISO-8859-1'
          3        DO_ICALL                                         $6      
          4        ASSIGN                                                   !1, $6
   86     5        INIT_FCALL                                               'xml_parser_set_option'
          6        SEND_VAR                                                 !1
          7        SEND_VAL                                                 4
          8        SEND_VAL                                                 1
          9        DO_ICALL                                                 
   87    10        INIT_FCALL                                               'xml_parse_into_struct'
         11        SEND_VAR                                                 !1
         12        SEND_VAR                                                 !0
         13        SEND_REF                                                 !2
         14        SEND_REF                                                 !3
         15        DO_ICALL                                                 
   88    16        INIT_FCALL                                               'xml_parser_free'
         17        SEND_VAR                                                 !1
         18        DO_ICALL                                                 
   90    19        ASSIGN                                                   !4, <array>
   91    20        ASSIGN                                                   !5, 0
   93    21        FETCH_DIM_IS                                     ~13     !2, !5
         22        ISSET_ISEMPTY_DIM_OBJ                         0          ~13, 'attributes'
         23      > JMPZ                                                     ~14, ->56
   94    24    >   FETCH_DIM_R                                      ~15     !2, !5
         25        FETCH_DIM_R                                      ~16     ~15, 'tag'
         26        FETCH_DIM_R                                      ~20     !2, !5
         27        FETCH_DIM_R                                      ~21     ~20, 'attributes'
         28        FETCH_DIM_W                                      $17     !4, ~16
         29        FETCH_DIM_W                                      $18     $17
         30        ASSIGN_DIM                                               $18, 'ATTRIBUTES'
         31        OP_DATA                                                  ~21
   95    32        FETCH_DIM_R                                      ~22     !2, !5
         33        FETCH_DIM_R                                      ~23     ~22, 'tag'
         34        FETCH_DIM_R                                      ~24     !4, ~23
         35        COUNT                                            ~25     ~24
         36        SUB                                              ~26     ~25, 1
         37        ASSIGN                                                   !3, ~26
   96    38        FETCH_DIM_R                                      ~28     !2, !5
         39        FETCH_DIM_R                                      ~29     ~28, 'tag'
         40        INIT_FCALL                                               'array_merge'
         41        FETCH_DIM_R                                      ~32     !2, !5
         42        FETCH_DIM_R                                      ~33     ~32, 'tag'
         43        FETCH_DIM_R                                      ~34     !4, ~33
         44        FETCH_DIM_R                                      ~35     ~34, !3
         45        SEND_VAL                                                 ~35
         46        INIT_METHOD_CALL                                         'GetChildren'
         47        SEND_VAR_EX                                              !2
         48        SEND_VAR_EX                                              !5
         49        DO_FCALL                                      0  $36     
         50        SEND_VAR                                                 $36
         51        DO_ICALL                                         $37     
         52        FETCH_DIM_W                                      $30     !4, ~29
         53        ASSIGN_DIM                                               $30, !3
         54        OP_DATA                                                  $37
         55      > JMP                                                      ->65
   98    56    >   FETCH_DIM_R                                      ~38     !2, !5
         57        FETCH_DIM_R                                      ~39     ~38, 'tag'
         58        INIT_METHOD_CALL                                         'GetChildren'
         59        SEND_VAR_EX                                              !2
         60        SEND_VAR_EX                                              !5
         61        DO_FCALL                                      0  $42     
         62        FETCH_DIM_W                                      $40     !4, ~39
         63        ASSIGN_DIM                                               $40
         64        OP_DATA                                                  $42
  100    65    > > RETURN                                                   !4
  101    66*     > RETURN                                                   null

End of function getxmldatatree

Function getxmltree:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 5, Position 2 = 14
Branch analysis from position: 5
1 jumps found. (Code = 42) Position 1 = 34
Branch analysis from position: 34
2 jumps found. (Code = 43) Position 1 = 57, Position 2 = 89
Branch analysis from position: 57
1 jumps found. (Code = 42) Position 1 = 98
Branch analysis from position: 98
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 89
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 14
1 jumps found. (Code = 42) Position 1 = 26
Branch analysis from position: 26
2 jumps found. (Code = 44) Position 1 = 31, Position 2 = 20
Branch analysis from position: 31
2 jumps found. (Code = 43) Position 1 = 57, Position 2 = 89
Branch analysis from position: 57
Branch analysis from position: 89
Branch analysis from position: 20
2 jumps found. (Code = 44) Position 1 = 31, Position 2 = 20
Branch analysis from position: 31
Branch analysis from position: 20
filename:       /in/rD36X
function name:  GetXMLTree
number of ops:  100
compiled vars:  !0 = $xmlloc, !1 = $data, !2 = $fp, !3 = $parser, !4 = $vals, !5 = $index, !6 = $tree, !7 = $i
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  103     0  E >   RECV                                             !0      
  104     1        INIT_FCALL                                               'file_exists'
          2        SEND_VAR                                                 !0
          3        DO_ICALL                                         $8      
          4      > JMPZ                                                     $8, ->14
  105     5    >   INIT_FCALL                                               'implode'
          6        SEND_VAL                                                 ''
          7        INIT_FCALL                                               'file'
          8        SEND_VAR                                                 !0
          9        DO_ICALL                                         $9      
         10        SEND_VAR                                                 $9
         11        DO_ICALL                                         $10     
         12        ASSIGN                                                   !1, $10
         13      > JMP                                                      ->34
  107    14    >   INIT_FCALL                                               'fopen'
         15        SEND_VAR                                                 !0
         16        SEND_VAL                                                 'r'
         17        DO_ICALL                                         $12     
         18        ASSIGN                                                   !2, $12
  108    19      > JMP                                                      ->26
  109    20    >   INIT_FCALL                                               'fread'
         21        SEND_VAR                                                 !2
         22        SEND_VAL                                                 1024
         23        DO_ICALL                                         $14     
         24        CONCAT                                           ~15     !1, $14
         25        ASSIGN                                                   !1, ~15
  108    26    >   INIT_FCALL                                               'feof'
         27        SEND_VAR                                                 !2
         28        DO_ICALL                                         $17     
         29        BOOL_NOT                                         ~18     $17
         30      > JMPNZ                                                    ~18, ->20
  112    31    >   INIT_FCALL                                               'fclose'
         32        SEND_VAR                                                 !2
         33        DO_ICALL                                                 
  115    34    >   INIT_FCALL                                               'xml_parser_create'
         35        SEND_VAL                                                 'ISO-8859-1'
         36        DO_ICALL                                         $20     
         37        ASSIGN                                                   !3, $20
  116    38        INIT_FCALL                                               'xml_parser_set_option'
         39        SEND_VAR                                                 !3
         40        SEND_VAL                                                 4
         41        SEND_VAL                                                 1
         42        DO_ICALL                                                 
  117    43        INIT_FCALL                                               'xml_parse_into_struct'
         44        SEND_VAR                                                 !3
         45        SEND_VAR                                                 !1
         46        SEND_REF                                                 !4
         47        SEND_REF                                                 !5
         48        DO_ICALL                                                 
  118    49        INIT_FCALL                                               'xml_parser_free'
         50        SEND_VAR                                                 !3
         51        DO_ICALL                                                 
  120    52        ASSIGN                                                   !6, <array>
  121    53        ASSIGN                                                   !7, 0
  123    54        FETCH_DIM_IS                                     ~27     !4, !7
         55        ISSET_ISEMPTY_DIM_OBJ                         0          ~27, 'attributes'
         56      > JMPZ                                                     ~28, ->89
  124    57    >   FETCH_DIM_R                                      ~29     !4, !7
         58        FETCH_DIM_R                                      ~30     ~29, 'tag'
         59        FETCH_DIM_R                                      ~34     !4, !7
         60        FETCH_DIM_R                                      ~35     ~34, 'attributes'
         61        FETCH_DIM_W                                      $31     !6, ~30
         62        FETCH_DIM_W                                      $32     $31
         63        ASSIGN_DIM                                               $32, 'ATTRIBUTES'
         64        OP_DATA                                                  ~35
  125    65        FETCH_DIM_R                                      ~36     !4, !7
         66        FETCH_DIM_R                                      ~37     ~36, 'tag'
         67        FETCH_DIM_R                                      ~38     !6, ~37
         68        COUNT                                            ~39     ~38
         69        SUB                                              ~40     ~39, 1
         70        ASSIGN                                                   !5, ~40
  126    71        FETCH_DIM_R                                      ~42     !4, !7
         72        FETCH_DIM_R                                      ~43     ~42, 'tag'
         73        INIT_FCALL                                               'array_merge'
         74        FETCH_DIM_R                                      ~46     !4, !7
         75        FETCH_DIM_R                                      ~47     ~46, 'tag'
         76        FETCH_DIM_R                                      ~48     !6, ~47
         77        FETCH_DIM_R                                      ~49     ~48, !5
         78        SEND_VAL                                                 ~49
         79        INIT_METHOD_CALL                                         'GetChildren'
         80        SEND_VAR_EX                                              !4
         81        SEND_VAR_EX                                              !7
         82        DO_FCALL                                      0  $50     
         83        SEND_VAR                                                 $50
         84        DO_ICALL                                         $51     
         85        FETCH_DIM_W                                      $44     !6, ~43
         86        ASSIGN_DIM                                               $44, !5
         87        OP_DATA                                                  $51
         88      > JMP                                                      ->98
  128    89    >   FETCH_DIM_R                                      ~52     !4, !7
         90        FETCH_DIM_R                                      ~53     ~52, 'tag'
         91        INIT_METHOD_CALL                                         'GetChildren'
         92        SEND_VAR_EX                                              !4
         93        SEND_VAR_EX                                              !7
         94        DO_FCALL                                      0  $56     
         95        FETCH_DIM_W                                      $54     !6, ~53
         96        ASSIGN_DIM                                               $54
         97        OP_DATA                                                  $56
  130    98    > > RETURN                                                   !6
  131    99*     > RETURN                                                   null

End of function getxmltree

End of class clsParseXML.

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
177.47 ms | 1424 KiB | 37 Q