<?php
header("Content-type: text/xml");
$xml = new SimpleXMLElement("<noresult>1</noresult>");
$fn = urlencode($_REQUEST['fn']);
$ln = urlencode($_REQUEST['ln']);
$co = $_REQUEST['co'];
if (empty($fn) || empty($ln)):
    echo $xml->asXML();
    exit();
endif;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.linkedin.com/pub/dir/?first={$fn}&last={$ln}&search=Search");
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate');
curl_setopt($ch, CURLOPT_TIMEOUT, 8);
$res = curl_exec($ch);
preg_match("/<div id=\"content\".*?<\/div>\s*<\/div>/ms", $res, $match);
if (!empty($match)):
    $dom = new DOMDocument();
    $dom->loadHTML($match[0]);
    $ol = $dom->getElementsByTagName('ol');
    $vcard = $dom->getElementsByTagName('li');
    $co_match_node = false;
    for ($i = 0; $i < $vcard->length; $i++):
        if (!empty($co) && stripos($vcard->item($i)->nodeValue, $co) !== false) $co_match_node = $vcard->item($i);
    endfor;
    if (!empty($co_match_node)):
        echo $dom->saveXML($co_match_node);
        // my idea is to put code here to save in the database.
    else:
        echo (string)$dom->saveXML($ol->item(0));
    endif;
else:
    echo $xml->asXML();
endif;
curl_close($ch);
exit();
I'm trying to save XML into a MySQL database. However, I don't know how to parse the $dom or how to segregate the "li". There are 5 fields needed in the database:
- span.given-name
- span.family-name
- span.location
- span.industry
- dd.current-content span
These fields are available in the XML.
 
    