3v4l.org

run code in 300+ PHP versions simultaneously
<?php $xml = "<?xml version='1.0' encoding='ISO-8859-1'?> <delta> <history> <detail> <id>one</id> <degree> <dname>alpha</dname> <dates> <StartDate> <Year>1998</Year> </StartDate> <EndDate> <Year>2002</Year> </EndDate> </dates> </degree> </detail> <detail> <id>two</id> <degree> <dname>beta</dname> <dates> <StartDate> <Year>2006</Year> </StartDate> <EndDate> <Year>2008</Year> </EndDate> </dates> </degree> </detail> </history> </delta>"; $doc = new DOMDocument; $doc->preserveWhiteSpace = false; $doc->loadXML($xml); $xpath = new DOMXPath($doc); $items = $doc->getElementsByTagName("detail"); $subitemarray = array(); $icounter = 0; foreach ($items as $item) { $query = "//*[contains(local-name(), 'Date')] "; $entries = $xpath->query($query, $item); $dates["startdate"] = $entries[0]->nodeValue; $dates["enddate"] = $entries[1]->nodeValue; $subitemarray[$icounter++] = $dates; } var_dump($subitemarray);

preferences:
29.67 ms | 404 KiB | 5 Q