У меня возникли некоторые проблемы с использованием простого парсера Dom, я хотел бы получить некоторые значения из таблицы в html-файле, я хочу только значения в td с id = ‘ok’.
Я имею в виду:
<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']');
но, похоже, это не работает. У кого-нибудь есть идея?
Должно. Вот другой селектор.
Оба работали на меня.
require_once 'simple_html_dom.php';
$html = file_get_html('test.html');
$elem = $html->find('td#ok', 0);
echo $elem->plaintext;
Примечание: find () возвращает массив, если не указан 2-й параметр (индекс)
Еще одно решение (без сторонних парсеров) использовать 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']")