i'm trying aggregate club phone numbers html.
here html:
<div id="content"> <div class="container"> <div class="padded"> <ul class="state-list"> <ul class="state-city-list"> <li class="jumper"> <div class="clubinfo"> <div class="clubaddress">123 west palm blvd</div> <div class="clubphone">5555551123</div> </div> </li> </ul> <ul class="state-city-list"> <li class="jumper"> <div class="clubinfo"> <div class="clubaddress">456 west palm blvd</div> <div class="clubphone">5555555456</div> </div> </li> </ul> <ul class="state-city-list"> <li class="jumper"> <div class="clubinfo"> <div class="clubaddress">789 west palm blvd</div> <div class="clubphone">5555555789</div> </div> </li> </ul> <ul class="state-city-list"> <li class="jumper"> <div class="clubinfo"> <div class="clubaddress">213 west palm blvd</div> <div class="clubphone">5555555213</div> </div> </li> </ul> </ul> </div> </div> </div>
here php code:
$htmlfile='phonecontents'; $xml=new domdocument(); $xml->preservewhitespace=false; $xml->loadhtmlfile($htmlfile); $xpath = new domxpath($xml); //$elm = $xpath->query('/div[@id="content"]/div[@class="container"]/div[@class="padded"]/ul[@class="state-list"]/li[@class="jumper"]/div[@class="clubinfo"]/div[@class="clubphone"]'); $elm = $xpath->query('/div[@id="content"]/div[@class="clubinfo"]/div[@class="clubphone"]'); if(!is_null($elm)){ var_dump($elm); foreach($elm $el){ echo $el->nodevalue."\n"; } } else { echo "no data found \n"; }
i'm not quite sure because i'm new xpath unable data correctly. if @ php code can see tried 2 different queries neither seemed work.
try following:
$elm = $xpath->query('//div[@id="content"]//div[@class="clubinfo"]/div[@class="clubphone"]');
using 1 slash means "direct child of", using 2 slashes means "any descendant of".