PHP DOM 简单解析器从 td 获取值
PHP DOM simple parser get values from td
我在使用 Dom 简单解析器时遇到了一些麻烦,我想从 html 文件中的 table 中获取一些值,我只想要 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() returns 一个数组,除非指定了第二个参数(索引)
另一种解决方案(没有第三方解析器)是使用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']")
我在使用 Dom 简单解析器时遇到了一些麻烦,我想从 html 文件中的 table 中获取一些值,我只想要 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() returns 一个数组,除非指定了第二个参数(索引)
另一种解决方案(没有第三方解析器)是使用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']")