Извлечь цену соответствующего продукта на веб-страницу

Я работаю над веб-скребком. Я искал название продукта на веб-странице с моим продуктом. Если на странице есть тот же продукт, я хочу извлечь цену этого продукта. для этого я использую XPath

вот мой html-код, из которого мне нужно извлечь цену.

<div class="products_list_table"> <table id="products_list_table_table" cellspacing="6" cellpadding="0" border="0"> <tbody> <tr> <td valign="top" align="center"> <span class="product_title">Malik Candy FC Composite Hockey Stick</span> <div class="list_price_bar all-cnrs"> <span class="list_price_title">Price Now:</span> <span class="list_sale_price">£40.00</span> </div> </td> </tr> <tr> <td valign="top" align="center"> <span class="product_title">Malik TC Stylish Hockey Stick</span> <div class="list_price_bar all-cnrs"> <span class="list_price_title">Price Now:</span> <span class="list_sale_price">£70.00</span> </div> </td> </tr> ... </tbody> </table> <div> 

Есть много тэгов для всех продуктов, и я ищу название продукта, если он нашел, что я хочу извлечь стоимость этого продукта.

вот мой php-код в файле test.php

 <?php set_time_limit(0); if(isset($_POST['title']) && $_POST['title']!= ''){ $product_title = mysql_real_escape_string($_POST['title']); $url = 'http://www.example.com'; $html = file_get_contents($url); $doc = new DOMDocument(); @$doc->loadHTML($html); $xpath = new DOMXPath($doc); $found = $xpath->evaluate("boolean(//span[contains(text(), '". $product_title ."' )])"); if($found == false){ echo "Not Found"; } else { $elements = $xpath->evaluate("//span[@class='list_sale_price']"); if (!is_null($elements)) { foreach ($elements as $element) { $nodes = $element->childNodes; foreach ($nodes as $node) { echo $node->nodeValue.'<br>'; } } } } } ?> 

здесь я использую форму в test.php для поиска продукта

 <html> <head> <title></title> </head> <body> <form action="" method="post"> <label>Enter product title to search</label><br /><br /> <input type="text" name="title" size="50" /><br /><br /> <input type="submit" value="Search" onclick="msg()"/> </form> </body> </html> 

После поиска продукта, я хочу извлечь стоимость этого продукта, но он отображает все цены на странице. где я ошибся. Требуется выражение xpath для извлечения цены совпадающего продукта.

Вам не нужны несколько выражений. Вы можете извлечь цену одним выражением XPath, выбрав div соответствующий вашему совпадающему span , и в этом контексте извлечение его дочернего span который имеет класс list_sale_price :

 //span[contains(text(), 'Malik Candy' )]/following-sibling::div/span[@class='list_sale_price']