PHP simplehtmldom在空白表结构中查找文本

时间:2019-04-20 00:06:07

标签: php simple-html-dom

我很难在大量HTML表格中找到 DYNAMIC-TEXT 值。

我尝试了$html->find("th[plaintext*=Type"),从这里开始,我想访问同级,但是什么也不返回。这是表格结构

<table>
    <tbody>
    </tbody>

    <colgroup>
        <col width="25%">
        <col>
    </colgroup>

    <tbody>
        <tr class="odd">
            <th colspan="2">Name</th>
        </tr>

        <tr class="even">
            <th width="30%">Type</th>
            <td>DYNAMIC-TEXT</td>
        </tr> 
    </tbody>
</table>

我希望输出为 DYNAMIC-TEXT 的文本,但动作输出为空

谢谢

1 个答案:

答案 0 :(得分:0)

在您的代码$html->find("th[plaintext*=Type")中,您想使用attribute selector *=,但没有属性plaintext

但是属性宽度为30%。您可以使用模式^[0-9]+%$检查1个以上的数字,后跟一个百分号。

如果找到结果,则可以获取next_sibling并从中获取plaintext

例如:

$html = str_get_html($str);
foreach ($html->find("th[width*=^[0-9]+%$]") as $value) {
    echo $value->next_sibling()->plaintext;
}

结果:

DYNAMIC-TEXT