简单的HTML DOM无法在TR中获得第一个TD

时间:2019-01-17 17:34:24

标签: parsing html-parsing

我无法使用SourceForge的PHP Simple HTML DOM Parser 1.81解析表。我有PHP 7.1。我做了这个测试来解释我的问题。

我有这个html文件test.html:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
    </head>
    <body>
        <div class="workers">
            <table>
                <tr>
                    <td>Bob</td>
                    <td>Plumber</td>
                </tr>
                <tr>
                    <td>Jane</td>
                    <td>Lawyer</td>
                </tr>
            </table>
        </div>
    </body>
</html>

这是我的PHP代码:

<?php
require('simple_html_dom.php');
// Create DOM from URL or file
$html = file_get_html('test.html');

// creating an array of elements
    $table = $html->find('table',0);

    foreach($table->find('tr') as $row) {

        $rowKey = $row->find('td',0)->plaintext;

        var_dump($row_key);

        $value = $row->find('td',1)->plaintext;

        var_dump($value);

        echo "rowkey=".$rowkey;
        echo "value=".$value;
        echo "<br>";
    } 
?>

在我的示例中,我很难获取名为$ rowkey的行的第一个td的值。它返回null。

我将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:1)

您似乎正在使用rowKeyrow_key rowkey。我的建议是选择一个 变量名并坚持使用:-)

更严重的是,var_dumpecho都不会使用您设置的用于保存DOM引用的变量。相反,他们将使用某些 other 值,在这种情况下,该值似乎是未初始化的。

如果将它们全部更改为rowKey(或者根据需要将其更改为其他),则应该可以正常工作。