2015-04-09 5 views
1

У меня возникли проблемы с использованием простого анализатора Dom, я хотел бы получить некоторые значения из таблицы в html-файле, мне нужны только значения в td, которые имеют id = 'ok' ,PHP DOM простой парсер получить значения от td

Я имею в виду:

<tr> 
    <td id="no"> 18 </td> 
    <td id="yes"> 19 </td> 
    <td id="maybe"> 20 </td> 
    <td id="ok"> 21 </td> ---- i only want this value 
<tr> 

<tr> 
    <td id="no"> 18 </td> 
    <td id="yes"> 19 </td> 
    <td id="maybe"> 20 </td> 
    <td id="no"> 25 </td> 
<tr> 

я пытаюсь использовать этот код:

$ret = $html->find('td[id='ok']'); 

но мне кажется, он не работает. У кого-то есть идея?

ответ

1

Должно быть. Вот другой селектор. Оба работали на меня.

require_once 'simple_html_dom.php'; 

$html = file_get_html('test.html'); 
$elem = $html->find('td#ok', 0); 
echo $elem->plaintext; 

Примечание: найти() возвращает массив, если второй параметр (индекс) не указан

+0

Отлично, извините за задержку! – user3767488

1

Еще одно решение (без сторонних парсеров) является использование DOMDocument и XPATH

$doc = new DOMDocument(); 
// Making validator to be less strict (bec. invalid XML structure will cause parsing failure) 
$doc->strictErrorChecking = false; 
// Reading HTML directly in argument (saving one line of code) 
$doc->loadHTML(file_get_contents('/some/test.html')); 

$xml = simplexml_import_dom($doc); 
// Applying XPATH on parsed document 
$nodes = $xml->xpath("//*[@id='ok']") 
Смежные вопросы