http://php.net/manual/en/simplexmlelement.xpath.php - parse XML
http://www.php.net/manual/en/simplexml.examples-basic.php - register namespaces, etc.
Example for Google calendar. Most important parts are the namespaces and (string) casting.
$contents = file_get_contents($calendar_url); // should end with 'full', not 'basic'
$xml = new SimpleXMLElement($contents);
$namespaces = $xml->getDocNamespaces();
$xml->registerXPathNamespace('__empty_ns', $namespaces['']);
$xml->registerXPathNamespace('gd', 'http://schemas.google.com/g/2005'); # xmlns:gd='http://schemas.google.com/g/2005'
$entries = $xml->xpath("//__empty_ns:entry");
while(list( , $node) = each($entries)) {
$time_nodes = $node->xpath("gd:when/@startTime");
while ($time_node = each($time_nodes)) {
# <gd:when endTime="2011-08-19T17:00:00.000+01:00" startTime="2011-08-19T14:00:00.000+01:00"></gd:when>
$time_text = (string)$time_node[1]->startTime;
die "time = $time_text\n";