3v4l.org

run code in 300+ PHP versions simultaneously
<?php $dom=new DOMDocument(); $dom->loadXML(<<<XML <?xml version="1.0"?> <alerts> <alert> <id>3</id> <msg_type>1</msg_type> <msg>Some Message</msg> <url>Some Link</url> <status>0</status> <create_date>1388049941</create_date> <update_date>1388052529</update_date> </alert> <alert> <id>6</id> <msg_type>1</msg_type> <msg>Some Message</msg> <url>Some Link</url> <status>0</status> <create_date>1388049941</create_date> <update_date>1388052529</update_date> </alert> <alert> <id>14</id> <msg_type>1</msg_type> <msg>Some Message</msg> <url>Some Link</url> <status>0</status> <create_date>1388049941</create_date> <update_date>1388052529</update_date> </alert> <alert> <id>24</id> <msg_type>1</msg_type> <msg>Some Message</msg> <url>Some Link</url> <status>0</status> <create_date>1388049941</create_date> <update_date>1388052529</update_date> </alert> </alerts> XML ); $xpath=new DOMXPath($dom); $nodeList=$xpath->query('alert[msg_type=1]'); $myID=14; foreach($nodeList as $node) { foreach($node->childNodes as $child) { if($child->nodeName=="id") { if($child->textContent==$myID) { $node->parentNode->removeChild($node); } break; } } } echo $dom->saveXML();
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 16, Position 2 = 34
Branch analysis from position: 16
2 jumps found. (Code = 78) Position 1 = 17, Position 2 = 34
Branch analysis from position: 17
2 jumps found. (Code = 77) Position 1 = 19, Position 2 = 32
Branch analysis from position: 19
2 jumps found. (Code = 78) Position 1 = 20, Position 2 = 32
Branch analysis from position: 20
2 jumps found. (Code = 43) Position 1 = 23, Position 2 = 31
Branch analysis from position: 23
2 jumps found. (Code = 43) Position 1 = 26, Position 2 = 30
Branch analysis from position: 26
1 jumps found. (Code = 42) Position 1 = 32
Branch analysis from position: 32
1 jumps found. (Code = 42) Position 1 = 16
Branch analysis from position: 16
Branch analysis from position: 30
Branch analysis from position: 31
1 jumps found. (Code = 42) Position 1 = 19
Branch analysis from position: 19
Branch analysis from position: 32
Branch analysis from position: 32
Branch analysis from position: 34
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 34
filename:       /in/bofXs
function name:  (null)
number of ops:  39
compiled vars:  !0 = $dom, !1 = $xpath, !2 = $nodeList, !3 = $myID, !4 = $node, !5 = $child
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   NEW                                              $6      'DOMDocument'
          1        DO_FCALL                                      0          
          2        ASSIGN                                                   !0, $6
    3     3        INIT_METHOD_CALL                                         !0, 'loadXML'
    4     4        SEND_VAL_EX                                              '%3C%3Fxml+version%3D%221.0%22%3F%3E%0A%3Calerts%3E%0A++%3Calert%3E%0A++++%3Cid%3E3%3C%2Fid%3E%0A++++%3Cmsg_type%3E1%3C%2Fmsg_type%3E%0A++++%3Cmsg%3ESome+Message%3C%2Fmsg%3E%0A++++%3Curl%3ESome+Link%3C%2Furl%3E%0A++++%3Cstatus%3E0%3C%2Fstatus%3E%0A++++%3Ccreate_date%3E1388049941%3C%2Fcreate_date%3E%0A++++%3Cupdate_date%3E1388052529%3C%2Fupdate_date%3E%0A++%3C%2Falert%3E%0A++%3Calert%3E%0A++++%3Cid%3E6%3C%2Fid%3E%0A++++%3Cmsg_type%3E1%3C%2Fmsg_type%3E%0A++++%3Cmsg%3ESome+Message%3C%2Fmsg%3E%0A++++%3Curl%3ESome+Link%3C%2Furl%3E%0A++++%3Cstatus%3E0%3C%2Fstatus%3E%0A++++%3Ccreate_date%3E1388049941%3C%2Fcreate_date%3E%0A++++%3Cupdate_date%3E1388052529%3C%2Fupdate_date%3E%0A++%3C%2Falert%3E%0A++%3Calert%3E%0A++++%3Cid%3E14%3C%2Fid%3E%0A++++%3Cmsg_type%3E1%3C%2Fmsg_type%3E%0A++++%3Cmsg%3ESome+Message%3C%2Fmsg%3E%0A+++%3Curl%3ESome+Link%3C%2Furl%3E%0A++++%3Cstatus%3E0%3C%2Fstatus%3E%0A++++%3Ccreate_date%3E1388049941%3C%2Fcreate_date%3E%0A++++%3Cupdate_date%3E1388052529%3C%2Fupdate_date%3E%0A++%3C%2Falert%3E%0A++%3Calert%3E%0A++++%3Cid%3E24%3C%2Fid%3E%0A++++%3Cmsg_type%3E1%3C%2Fmsg_type%3E%0A++++%3Cmsg%3ESome+Message%3C%2Fmsg%3E%0A++++%3Curl%3ESome+Link%3C%2Furl%3E%0A++++%3Cstatus%3E0%3C%2Fstatus%3E%0A++++%3Ccreate_date%3E1388049941%3C%2Fcreate_date%3E%0A++++%3Cupdate_date%3E1388052529%3C%2Fupdate_date%3E%0A++%3C%2Falert%3E%0A%3C%2Falerts%3E'
          5        DO_FCALL                                      0          
   45     6        NEW                                              $10     'DOMXPath'
          7        SEND_VAR_EX                                              !0
          8        DO_FCALL                                      0          
          9        ASSIGN                                                   !1, $10
   46    10        INIT_METHOD_CALL                                         !1, 'query'
         11        SEND_VAL_EX                                              'alert%5Bmsg_type%3D1%5D'
         12        DO_FCALL                                      0  $13     
         13        ASSIGN                                                   !2, $13
   47    14        ASSIGN                                                   !3, 14
   48    15      > FE_RESET_R                                       $16     !2, ->34
         16    > > FE_FETCH_R                                               $16, !4, ->34
   50    17    >   FETCH_OBJ_R                                      ~17     !4, 'childNodes'
         18      > FE_RESET_R                                       $18     ~17, ->32
         19    > > FE_FETCH_R                                               $18, !5, ->32
   52    20    >   FETCH_OBJ_R                                      ~19     !5, 'nodeName'
         21        IS_EQUAL                                                 ~19, 'id'
         22      > JMPZ                                                     ~20, ->31
   54    23    >   FETCH_OBJ_R                                      ~21     !5, 'textContent'
         24        IS_EQUAL                                                 !3, ~21
         25      > JMPZ                                                     ~22, ->30
   56    26    >   FETCH_OBJ_R                                      ~23     !4, 'parentNode'
         27        INIT_METHOD_CALL                                         ~23, 'removeChild'
         28        SEND_VAR_EX                                              !4
         29        DO_FCALL                                      0          
   58    30    > > JMP                                                      ->32
   50    31    > > JMP                                                      ->19
         32    >   FE_FREE                                                  $18
   48    33      > JMP                                                      ->16
         34    >   FE_FREE                                                  $16
   62    35        INIT_METHOD_CALL                                         !0, 'saveXML'
         36        DO_FCALL                                      0  $25     
         37        ECHO                                                     $25
         38      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
139.04 ms | 1410 KiB | 13 Q