3v4l.org

run code in 300+ PHP versions simultaneously
<?php $xml = <<<'XML' <?xml version="1.0" encoding="UTF-8"?> <QUESTIONNAIRE> <ENTITE nom="Questions-réponses"> <NOM>Questions-réponses</NOM> <SITE>https://www.fff.fr/9-les-arbitres/240-les-lois-du-jeu.html</SITE> <DATE>30/06/2021</DATE> <QUIZZ> <QUIZZ1/> </QUIZZ> </ENTITE> <ENTITE nom="LIGUE DE BRETAGNE"> <NOM>LIGUE DE BRETAGNE</NOM> <SITE>https://footbretagne.fff.fr/arbitrage/</SITE> <DATE>08/08/2020</DATE> </ENTITE> </QUESTIONNAIRE> XML; $dom = new DOMDocument; $dom->loadXML($xml); //->load('donnees2.xml'); $xp = new DOMXPath($dom); $new_date = '21/04/1985'; $nom = 'LIGUE DE BRETAGNE'; $query = '(/*/ENTITE[@nom = "' . $nom . '"]/DATE/text())[1]'; $nodeList = $xp->query($query); if ( $nodeList->length ) { $nodeList->item(0)->nodeValue = $new_date; } echo $dom->saveXML();
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 22, Position 2 = 28
Branch analysis from position: 22
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 28
filename:       /in/VBYI8
function name:  (null)
number of ops:  32
compiled vars:  !0 = $xml, !1 = $dom, !2 = $xp, !3 = $new_date, !4 = $nom, !5 = $query, !6 = $nodeList
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                   !0, '%3C%3Fxml+version%3D%221.0%22+encoding%3D%22UTF-8%22%3F%3E%0A%3CQUESTIONNAIRE%3E%0A%09%09%09%3CENTITE+nom%3D%22Questions-r%C3%A9ponses%22%3E%0A%09%09%09%3CNOM%3EQuestions-r%C3%A9ponses%3C%2FNOM%3E%0A%09%09%09%3CSITE%3Ehttps%3A%2F%2Fwww.fff.fr%2F9-les-arbitres%2F240-les-lois-du-jeu.html%3C%2FSITE%3E%0A%09%09%09%3CDATE%3E30%2F06%2F2021%3C%2FDATE%3E%0A%09%09%09%3CQUIZZ%3E%0A%09%09%09%09%3CQUIZZ1%2F%3E%0A%09%09%09%3C%2FQUIZZ%3E%0A%09%09%3C%2FENTITE%3E%0A%09%09%3CENTITE+nom%3D%22LIGUE+DE+BRETAGNE%22%3E%0A%09%09%09%3CNOM%3ELIGUE+DE+BRETAGNE%3C%2FNOM%3E%0A%09%09%09%3CSITE%3Ehttps%3A%2F%2Ffootbretagne.fff.fr%2Farbitrage%2F%3C%2FSITE%3E%0A%09%09%09%3CDATE%3E08%2F08%2F2020%3C%2FDATE%3E%0A%09%09%3C%2FENTITE%3E%0A+%0A%09%3C%2FQUESTIONNAIRE%3E'
   23     1        NEW                                              $8      'DOMDocument'
          2        DO_FCALL                                      0          
          3        ASSIGN                                                   !1, $8
   24     4        INIT_METHOD_CALL                                         !1, 'loadXML'
          5        SEND_VAR_EX                                              !0
          6        DO_FCALL                                      0          
   26     7        NEW                                              $12     'DOMXPath'
          8        SEND_VAR_EX                                              !1
          9        DO_FCALL                                      0          
         10        ASSIGN                                                   !2, $12
   28    11        ASSIGN                                                   !3, '21%2F04%2F1985'
   29    12        ASSIGN                                                   !4, 'LIGUE+DE+BRETAGNE'
   31    13        CONCAT                                           ~17     '%28%2F%2A%2FENTITE%5B%40nom+%3D+%22', !4
         14        CONCAT                                           ~18     ~17, '%22%5D%2FDATE%2Ftext%28%29%29%5B1%5D'
         15        ASSIGN                                                   !5, ~18
   33    16        INIT_METHOD_CALL                                         !2, 'query'
         17        SEND_VAR_EX                                              !5
         18        DO_FCALL                                      0  $20     
         19        ASSIGN                                                   !6, $20
   35    20        FETCH_OBJ_R                                      ~22     !6, 'length'
         21      > JMPZ                                                     ~22, ->28
   36    22    >   INIT_METHOD_CALL                                         !6, 'item'
         23        SEND_VAL_EX                                              0
         24        DO_FCALL                                      0  $23     
         25        SEPARATE                                         $23     $23
         26        ASSIGN_OBJ                                               $23, 'nodeValue'
         27        OP_DATA                                                  !3
   39    28    >   INIT_METHOD_CALL                                         !1, 'saveXML'
         29        DO_FCALL                                      0  $25     
         30        ECHO                                                     $25
         31      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
138.92 ms | 998 KiB | 13 Q