0
Я пытаюсь объединить номера телефонов клуба из этого html.Неверный запрос xpath
Вот мой 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>
Вот мой PHP код:
$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 as $el){
echo $el->nodeValue."\n";
}
} else {
echo "NO DATA FOUND \n";
}
Я не совсем уверен, потому что я новичок в XPath, но я не могу получить мои данные правильно. Если вы посмотрите на php-код, вы можете увидеть, что я попробовал с двумя разными запросами, и ни один из них не работал.
'// div [@ class =" clubphone "]' должен работать. Вам нужно, чтобы вы '//' в начале, чтобы получить все html и проверить его с помощью xpath –