3v4l.org

run code in 200+ php & hhvm versions
Bugs & Features
<?php echo LIBXML_DOTTED_VERSION, "\n"; $xml = <<<'XML' <products> <product category="Desktop"> <name> Desktop 1 (d)</name> <price>499.99</price> </product> <product category="Tablet"> <name>Tablet 1 (t)</name> <price>1099.99</price> </product> </products> XML; $reader = new XMLReader; $reader->open('data://text/xml,'.$xml); $dom = new DOMDocument; $xpath = new DOMXpath($dom); // look for the first product element while ($reader->read() && $reader->localName !== 'product') { continue; } // while you have an product element while ($reader->localName === 'product') { $node = $reader->expand($dom); var_dump( $xpath->evaluate('string(@category)', $node), $xpath->evaluate('string(name)', $node), $xpath->evaluate('number(price)', $node) ); // move to the next product sibling $reader->next('product'); }
based on 68Vep
Output for 5.6.28, 7.0.14 - 7.1.7, 7.1.20 - 7.3.1
2.9.4 string(7) "Desktop" string(14) " Desktop 1 (d)" float(499.99) string(6) "Tablet" string(12) "Tablet 1 (t)" float(1099.99)
Output for 7.1.10
2.9.5 string(7) "Desktop" string(14) " Desktop 1 (d)" float(499.99) string(6) "Tablet" string(12) "Tablet 1 (t)" float(1099.99)
Output for 5.5.24 - 5.6.15, 5.6.17 - 5.6.21, 7.0.1 - 7.0.6
2.9.3 string(7) "Desktop" string(14) " Desktop 1 (d)" float(499.99) string(6) "Tablet" string(12) "Tablet 1 (t)" float(1099.99)
Output for 5.4.0 - 5.4.45, 5.6.16, 7.0.0
2.9.2 string(7) "Desktop" string(14) " Desktop 1 (d)" float(499.99) string(6) "Tablet" string(12) "Tablet 1 (t)" float(1099.99)
Output for 5.3.25 - 5.3.29
2.9.1 string(7) "Desktop" string(14) " Desktop 1 (d)" float(499.99) string(6) "Tablet" string(12) "Tablet 1 (t)" float(1099.99)
Output for 5.3.15 - 5.3.24
2.8.0 string(7) "Desktop" string(14) " Desktop 1 (d)" float(499.99) string(6) "Tablet" string(12) "Tablet 1 (t)" float(1099.99)
Output for 5.3.0 - 5.3.14
2.7.8 string(7) "Desktop" string(14) " Desktop 1 (d)" float(499.99) string(6) "Tablet" string(12) "Tablet 1 (t)" float(1099.99)
Output for 4.4.2 - 4.4.9, 5.1.0 - 5.2.17
Parse error: syntax error, unexpected T_SL in /in/ol4uo on line 4
Process exited with code 255.
Output for 4.3.0 - 4.3.1, 4.3.5 - 4.4.1, 5.0.0 - 5.0.5
Parse error: parse error, unexpected T_SL in /in/ol4uo on line 4
Process exited with code 255.
Output for 4.3.2 - 4.3.4
Parse error: parse error in /in/ol4uo on line 4
Process exited with code 255.