首页 > 解决方案 > PHP simplehtmldom在空白表结构中查找文本

问题描述

我很难在 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的文本,但动作输出什么都不是

谢谢

标签: phpsimple-html-dom

解决方案


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

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

如果找到结果,您可以获得next_sibling并从中获取明文

例如:

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

结果:

DYNAMIC-TEXT

推荐阅读